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.0PGD now automatically detects and synchronizes all available nodes to the furthest ahead node for transactions originating from failed or disconnected node.
BDR5.4.0PGD now automatically resolves pending Group Commit transactions when the originating node fails or disconnects, ensuring uninterrupted transaction processing within the cluster.
BDR5.4.0Added ability to set the apply_delay group option on subgroups, 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 now 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 the Postgres configuration options that are set in the original session or transaction 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 command line help output.
BDR5.4.0Restoring a node group from a consensus snapshot now correctly applies option changes (number of writers, streaming, and apply_delay) to local subscriptions.
BDR5.4.0Fixed debug logging of pg_ctl enabling output capture for debugging purposes in bdr_init_physical.
BDR5.4.0Fixed assertion failure when TargetColumnMissing conflict occurs in a Group Commit transaction.
BDR5.4.0Fixed detection of UpdateOriginChange conflict to be more accurate.
BDR5.4.0Added support for timeout for normal Group Commit transaction.
BDR5.4.0Fixed error handling in writer when there are lock timeouts, conflicts, or deadlocks with and without Group Commit transactions.
BDR5.4.0Now allow 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.0Increased default bdr.raft_keep_min_entries to 1000 from 100.
BDR5.4.0Now allow the origin of Group Commit transactions to wait for responses from all the required nodes before taking an abort decision.
BDR5.4.0Now run ANALYZE on the internal Raft tables.RT97735
BDR5.4.0Fixed segfault in I2PC concurrent abort case.RT93962
BDR5.4.0Now avoid bypassing other extensions in BdrProcessUtility when processing COPY..TO.RT99345
BDR5.4.0Ensured that consensus connection are handled correctly.RT97649
BDR5.4.0Fixed 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.0Now use route_dsn and perform sslpassword processing while extracting write leader address.RT99700
Proxy5.4.0Now log client and server addresses at debug level in proxy logs.