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
Component | Version | Description | Addresses |
---|---|---|---|
BDR | 5.4.0 | Automatically detect and synchronize all available nodes to the furthest ahead node for transactions originating from failed or disconnected node. | |
BDR | 5.4.0 | Automatic resolution of pending group commit transactions when the originating node fails or disconnects, ensuring uninterrupted transaction processing within the cluster. | |
BDR | 5.4.0 | Added ability to set apply_delay group option on sub-groups, enabling adding of delayed subscriber-only nodes. | |
BDR | 5.4.0 | Loading data using EDB*Loader (except direct mode) is now supported. |
Bug fixes
Component | Version | Description | Addresses |
---|---|---|---|
BDR | 5.4.0 | Fixed memory leaks when running a query on some or all nodes. | |
BDR | 5.4.0 | Resolved an issue of high CPU usage for consensus processes. | RT97649 |
BDR | 5.4.0 | Improved WAL retention logic when a part_node occurs. | |
BDR | 5.4.0 | Witness nodes will automatically not synchronize structure when joining a group. | |
BDR | 5.4.0 | bdr.create_node() / bdr.alter_node() now give a hint when an invalid node kind is used. | |
BDR | 5.4.0 | Fixed transactions PREPARE/COMMIT/ABORT order with Parallel Apply enabled. | |
BDR | 5.4.0 | DDL 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 . | |
BDR | 5.4.0 | Improved pgd_bench cluster initialization and commandline help output. | |
BDR | 5.4.0 | Restoring a node group from a consensus snapshot correctly applies option changes (number of writers, streaming and apply_delay) to local subscriptions. | |
BDR | 5.4.0 | bdr_init_physical: fixed debug logging of pg_ctl enabling output capture for debugging purposes. | |
BDR | 5.4.0 | Fix assertion failure when TargetColumnMissing conflict occurs in a Group Commit transaction. | |
BDR | 5.4.0 | Fix detection of UpdateOriginChange conflict to be more accurate. | |
BDR | 5.4.0 | Support timeout for normal Group Commit transaction. | |
BDR | 5.4.0 | Fix error handling in writer when there are lock timeouts or conflicts or deadlocks with and without group commit transactions. | |
BDR | 5.4.0 | Allow the origin of group commit transactions to wait for responses from all the required nodes before taking an abort decision. | |
BDR | 5.4.0 | Eager transactions abort correctly after Raft was disabled or not working and has recovered. | RT101055 |
BDR | 5.4.0 | Increase default bdr.raft_keep_min_entries to 1000 from 100. | |
BDR | 5.4.0 | Allow the origin of group commit transactions to wait for responses from all the required nodes before taking an abort decision | |
BDR | 5.4.0 | Run ANALYZE on the internal raft tables. | RT97735 |
BDR | 5.4.0 | Fix segfault in I2PC concurrent abort case. | RT93962 |
BDR | 5.4.0 | Avoid bypassing other extensions in BdrProcessUtility when processing COPY..TO. | RT99345 |
BDR | 5.4.0 | Ensure that consensus connection are handled correctly. | RT97649 |
BDR | 5.4.0 | Fix memory leaks while running monitoring queries. | RT99231, RT95314 |
BDR | 5.4.0 | The bdr.metrics_otel_http_url and bdr.trace_otel_http_url options are now validated at assignment time. | |
BDR | 5.4.0 | When bdr.metrics_otel_http_url and bdr.trace_otel_http_url don't include paths, /v1/metrics and /v1/traces are used respectively. | |
BDR | 5.4.0 | Setting bdr.trace_enable to true is no longer required to enable OTEL metrics collection. | |
Proxy | 5.4.0 | Use route_dsn and perform sslpassword processing while extracting write leader address. | RT99700 |
Proxy | 5.4.0 | Log client and server addresses at debug level in proxy logs. |