Released: 26 May 2026
EDB Postgres Distributed (PGD) 6.4.0 includes new features, enhancements, and bug fixes.
Highlights
- Quorum Commit: A new commit scope kind that enforces pre-commit coordination across the cluster. A majority of nodes must agree before any node commits a transaction. If agreement isn't reached, the transaction rolls back everywhere, guaranteeing a consistent global view with no conflicting updates and no divergence across nodes.
- Transaction pooling via Connection Manager: Connection Manager now supports transaction-mode connection pooling in addition to session-mode pooling. In transaction pooling mode, a backend connection is held only for the duration of a transaction, reducing pressure on
max_connectionsand improving scalability under high concurrency. - Large object support: PGD 6.4.0 adds support for large objects in distributed deployments. PGD replicates large objects across all nodes and generates globally unique OIDs using galloc sequences to eliminate conflicts. The standard
lo_*API, includinglo_importandlo_export, works transparently through Connection Manager, so applications using large objects can migrate to PGD without changes to their architecture.
Features
| Description | Addresses |
|---|---|
Added configurable apply error policy for handling replication failures.PGD now provides a configurable policy for handling replication apply failures. When a transaction fails to apply, PGD can capture the failed changes and expose them for review and resolution via new SQL functions. Configure the policy per node group using | |
Added support for logically replicated large objects.PGD now provides its own implementation of large objects as a drop-in replacement for the built-in Postgres large objects. PGD large objects are logically replicated across all nodes in the cluster. The feature is available via | |
Added the | |
Added |
Enhancements
| Description | Addresses |
|---|---|
Parallel apply is now compatible with Quorum Commit.Unlike Group Commit, Quorum Commit is compatible with parallel apply. Quorum Commit improves on legacy Group Commit, which was only supported with | |
Enhanced the | |
Connection Manager now respects | |
Improved Connection Manager idle connection handling on topology and configuration changes.Connection Manager now closes outdated idle connections proactively on topology or configuration changes, and reports server connection errors directly to the client. | |
Added per-subgroup connection string support via | |
Enhanced | |
Connection Manager now reloads Postgres configuration parameters dynamically on | |
DDL on objects in the | 53224 |
Added sanity checks for joining and parting nodes in CAMO-configured groups.Attempting to join a data node to a group where existing nodes are configured as CAMO partners, or to part a data node when the group's | 55212 |
The configuration parameter | |
Improved log output when the transaction change tracker buffer is exceeded.The emitted log message now makes it clear that the issue is transient and that processing resumes following an automatic restart of the writer. |
Bug Fixes
| Description | Addresses |
|---|---|
Fixed zero OID assigned to tablespaces during logical join sync.
| 59715 |
Fixed | |
Fixed a memory leak in the walsender for the temporary replication slot used by joining nodes.Fixed a memory leak in | 59663 |
Fixed unbounded WAL accumulation caused by stale | 58999, 59320 |
Fixed deadlocks and stalls in the part and sync node state machines.The part and sync state machines could deadlock or stall when end-of-recovery markers were delivered through | |
Fixed a writer segfault when a replication origin was already in use.Enabling a | |
Fixed | |
Fixed system OID assignment in | |
Fixed upgrade failures from PGD 6.2 to 6.3 or 6.4 when | 59715 |
Fixed Connection Manager process not stopping after postmaster is killed. | 59631 |
Fixed memory leak in Postgres worker caused by | |
Fixed Connection Manager using outdated routing configuration when routing was enabled or disabled on a node group. | |
Fixed segfaults in | |
Fixed an undetectable deadlock in | |
Fixed an assertion crash in | |
Fixed a crash in the failover slot standby reply hook before BDR catalogs are available.The standby reply hook could fire before BDR catalogs were fully initialized, causing a crash. The hook now checks catalog availability and exits early when catalogs are not yet ready. | |
Replaced a writer-start assertion with a graceful exit when the receiver role is reset mid-launch.If the receiver role was reset between writer launch and writer initialization, the writer tripped an assertion. The writer now exits cleanly so it can be restarted by the supervisor without producing a core file. | |
Fixed | |
Made | |
Downgraded analytics lease renewal failures from | |
Fixed AutoPartition wait reliability and task manager backoff delays.The AutoPartition task manager's exponential backoff wasn't reset after processing work items, causing unnecessary iteration delays. | |
Fixed Connection Manager log level filtering to match Postgres behavior.Connection Manager was incorrectly interpreting | |
Changed the default display value of | |
Fixed pglogical manager process spinning at 100% CPU when a PGD worker becomes unresponsive to | 60272 |