EDB Postgres Distributed 5.4.0 release notes v5

Released: 05 Mar 2024

EDB Postgres Distributed version 5.4.0 is a minor version of EDB Postgres Distributed.

Recommended upgrade

We recommend that all users of PGD 5 upgrade to PGD 5.4. See PGD/TPA upgrades for details.

Highlights of EDB Postgres Distributed 5.4.0

Highlights of this 5.4.0 release include improvements to:

  • group commit, aiming to optimize performance by minimizing the effect of a node’s downtime and simplifying overall operating of PGD clusters.
  • apply_delay, enabling the creation of a delayed read-only replica for additional options for disaster recovery and to mitigate the impact of human error such as accidental DROP table statements

Compatibility

EDB Server version compatibility

This version requires the recently released Postgres versions 14.10, 15.4, or 16.1 (or later) of EDB Postgres Advanced Server or EDB Postgres Extended Server. No such restrictions exist for PostgreSQL Server.

Package managers on Debian, RHEL, and SLES pull in the required EDB Postgres Advanced Server or EDB Postgres Extended upgrades with an upgrade of EDB Postgres Distributed.

Features

ComponentVersionDescriptionAddresses
BDR5.4.0Automatically detect and synchronize all available nodes to the furthest ahead node for transactions originating from failed or disconnected node.
BDR5.4.0Automatic resolution of pending group commit transactions when the originating node fails or disconnects, ensuring uninterrupted transaction processing within the cluster.
BDR5.4.0Added ability to set apply_delay group option on sub-groups, enabling adding of delayed subscriber-only nodes.
BDR5.4.0Loading data using EDB*Loader (except direct mode) is now supported.

Bug fixes

ComponentVersionDescriptionAddresses
BDR5.4.0Fixed memory leaks when running a query on some or all nodes.
BDR5.4.0Resolved an issue of high CPU usage for consensus processes.RT97649
BDR5.4.0Improved WAL retention logic when a part_node occurs.
BDR5.4.0Witness nodes will automatically not synchronize structure when joining a group.
BDR5.4.0bdr.create_node() / bdr.alter_node() now give a hint when an invalid node kind is used.
BDR5.4.0Fixed transactions PREPARE/COMMIT/ABORT order with Parallel Apply enabled.
BDR5.4.0DDL replication now takes into account more of Postgres configuration options that are set in the original session or transaction in order to provide more consistent results of the DDL execution. Added standard_conforming_strings, edb_redwood_date, default_with_rowids and check_function_bodies.
BDR5.4.0Improved pgd_bench cluster initialization and commandline help output.
BDR5.4.0Restoring a node group from a consensus snapshot correctly applies option changes (number of writers, streaming and apply_delay) to local subscriptions.
BDR5.4.0bdr_init_physical: fixed debug logging of pg_ctl enabling output capture for debugging purposes.
BDR5.4.0Fix assertion failure when TargetColumnMissing conflict occurs in a Group Commit transaction.
BDR5.4.0Fix detection of UpdateOriginChange conflict to be more accurate.
BDR5.4.0Support timeout for normal Group Commit transaction.
BDR5.4.0Fix error handling in writer when there are lock timeouts or conflicts or deadlocks with and without group commit transactions.
BDR5.4.0Allow the origin of group commit transactions to wait for responses from all the required nodes before taking an abort decision.
BDR5.4.0Eager transactions abort correctly after Raft was disabled or not working and has recovered.RT101055
BDR5.4.0Increase default bdr.raft_keep_min_entries to 1000 from 100.
BDR5.4.0Allow the origin of group commit transactions to wait for responses from all the required nodes before taking an abort decision
BDR5.4.0Run ANALYZE on the internal raft tables.RT97735
BDR5.4.0Fix segfault in I2PC concurrent abort case.RT93962
BDR5.4.0Avoid bypassing other extensions in BdrProcessUtility when processing COPY..TO.RT99345
BDR5.4.0Ensure that consensus connection are handled correctly.RT97649
BDR5.4.0Fix memory leaks while running monitoring queries.RT99231, RT95314
BDR5.4.0The bdr.metrics_otel_http_url and bdr.trace_otel_http_url options are now validated at assignment time.
BDR5.4.0When bdr.metrics_otel_http_url and bdr.trace_otel_http_url don't include paths, /v1/metrics and /v1/traces are used respectively.
BDR5.4.0Setting bdr.trace_enable to true is no longer required to enable OTEL metrics collection.
Proxy5.4.0Use route_dsn and perform sslpassword processing while extracting write leader address.RT99700
Proxy5.4.0Log client and server addresses at debug level in proxy logs.