EDB Postgres Distributed 5.7.0 release notes v5.7

Released: 25 February 2025

EDB Postgres Distributed 5.7.0 includes a number of enhancements and bug fixes.

Highlights

  • Improved 3rd Party CDC Tool Integration: PGD 5.7.0 now supports failover of logical slots used by CDC tools with standard plugins (such as test_decoding, pgoutput, and wal2json) within a PGD cluster. This enhancement eliminates the need for 3rd party subscribers to reseed their tables during a lead Primary change.
  • PGD Compatibility Assessment: Ensure a seamless migration to PGD with the new Assess command in the PGD CLI. This tool proactively reports any PostgreSQL incompatibilities—especially those affecting logical replication—so you can address them before upgrading to PGD.
  • Upgrade PGD and Postgres with a Single Command: Leverage the new pgd node upgrade command in the PGD CLI to upgrade a node to the latest versions of PGD and Postgres.

Features

ComponentVersionDescriptionAddresses
BDR5.7.0
Added support for failover slots for logical replication.

When a PGD node fails or becomes unavailable, consumers can now continue to consume changes from some other node in the cluster. The feature can be turned on by setting the top group option failover_slot_scope to global. The consumer needs to handle duplicate transactions, but PGD guarantees that every transaction is decoded and sent at least once.

BDR5.7.0Ensured that the `remote_commit_time` and `remote_commit_lsn` are properly reported in the conflict reports.42273
PGD CLI5.7.0
Added new CLI command structure for easier access.

The new CLI command structure is more intuitive and easier to use. The new structure is a "noun-verb" format, where the noun is the object you want to work with and the verb is the action you want to perform. Full details are available in the CLI command reference.

PGD CLI5.7.0
Added a new local assesment feature for local non-PGD nodes to the CLI

The new feature allows you to assess the local node for compatibility with PGD. The feature is available as pgd assess. Full details are available in the CLI command reference.

PGD CLI5.7.0
Added pgd node upgrade functionality to the PGD CLI.

The new command allows you to upgrade a node to the latest version of PGD and Postgres. It integrates the operation of bdr_pg_upgrade into the CLI and is run locally. See pgd node upgrade and inplace upgrades for more information.

BDR5.7.0
Fixed an issue whereby concurrent joins of subscriber-only nodes occasionally stopped responding.

A node could end up waiting for the local state of another concurrently joined node to advance, which caused the system to stop responding.

42964

Enhancements

ComponentVersionDescriptionAddresses
BDR5.7.0
Narrowed down bdr.node_slots output to list only relevant slots.

The slots are displayed based on the node type, its role, and the cluster topology.

BDR5.7.0Added `target_type` column to `bdr.node_slots` view to indicate slot purpose/status.
BDR5.7.0
Improved performance of DML and other operations on partitioned tables.

Many code paths touching partitioned tables were performing costly checks to support additional table access methods. This code was adjusted to make the most common case (heap) the fastest.

BDR5.7.0
Improved bdr_init_physical to be able to run without superuser.

Now only the bdr_superuser is required.

PGD CLI5.7.0
Added new CLI commands for adding removing and updating commit scopes.

The new commands are pgd commit-scope show, pgd commit-scope create, pgd commit-scope update and pgd commit-scope drop. Full details are available in the CLI command reference.

PGD CLI5.7.0
Added support for legacy CLI command structure in the updated PGD CLI.

The legacy CLI command structure is still supported in the updated PGD CLI. The legacy command support is available for a limited time and will be removed in a future release. It is implemented as a wrapper around the new commands.

PGD CLI5.7.0
Added new subcommands to PGD CLI node and group for getting options.

The new subcommands are pgd node get-options and pgd group get-options. Full details are available in the CLI command reference.

PGD CLI5.7.0
Added new output formatting options psql and markdown to the PGD CLI.

The new options allow you to format the output of the CLI commands in a psql-like or markdown format. Format options are now json, psql, modern, markdown, simple and defaults to simple.

BDR5.7.0
Removed redundant WARNING when executing ALTER SEQUENCE.

The message now only appears when creating the sequence.

Bug Fixes

ComponentVersionDescriptionAddresses
BDR5.7.0Fixed a server panic by ensuring that catalog lookups aren't performed in a callback that gets called very late in the commit cycle.
BDR5.7.0Fixed an unintentional timed wait for a synchronous logical replication that resulted in unusually high latency for some transactions.42273
BDR5.7.0
The bdr.group_camo_details view now only lists data nodes belonging to the CAMO group.

The bdr.group_camo_details view now only lists data nodes belonging to the CAMO commit scope group. Previously, the view could include data nodes were not part of the CAMO group, logical standby nodes, Subscriber-Only nodes and witness nodes.

45354
BDR5.7.0
Improved PostgreSQL 17 compatibility.

Internal tables managed by autopartition that were created before the upgrade to PG17 were missing a rowtype entry into pg_depend. This issue caused errors after upgrading to PG17.

44401
BDR5.7.0
Fixed a bug where parting stopped responding with consensus timeout or consensus errors.

This fix also ensures parting doesn't stop responding when any of the nodes restart when part is in progress. Origin LSNs don't show up as 0/0 in log messages.

42056
BDR5.7.0
Fixed a memory leak in a global hook.

This bug could cause memory to leak even if bdr.so is just loaded and the extension isn't installed.

43678
BDR5.7.0
Fixed a bug where subgroup member part prevented new nodes from joining.

This fix ensures that if a subgroup member is parted while Raft subgroup routing is active, then another node can subsequently join that subgroup.

BDR5.7.0
Fixed a case where galloc sequence overflow wasn't being caught correctly.

This bug resulted in nextval call being stuck.

44755
BDR5.7.0
Fixed group slot movement for witness and data nodes in presence of subscriber-only nodes and witness nodes.

For PGD 5.6.0 and later, there are no subscriptions from a subscriber-only node to a witness node. This caused a problem with movement of group slot on data nodes and witness nodes in the presence of subscriber-only nodes in the cluster. This bug could cause WAL to be held on both witness nodes and data nodes when there's a subscriber-only node in the cluster.

BDR5.7.0Fixed a bug where conflict resolution functions were executed also on the witness nodes.
BDR5.7.0
Fixed a bug where bdr_init_physical stopped responding when synchronous_commit is set to remote_write/remote_apply.

bdr_init_physical disables synchronous replication on a new node by resetting synchronous_standby_names to an empty string. A warning message reminds you to set synchronous_standby_names as needed.

44760
PGD Proxy5.7.0
Fixed proxy regression by improving dsn name support for read nodes

A regression in the way read nodes were identified in the proxy in 6.5.1 was fixed by enabling support for different values in the dsn field's host and the node_name.

BDR5.7.0
Fixed a bug to handle additional replication sets on witness nodes.

The witness node now only cares about the top replication set and thus allows it to miss replications sets and not error out.

41776, 44527
BDR5.7.0
Changed origin deletion to be done asynchronously when optimized topology is enabled.

In an optimized topology, origin names now use the generation ID of the node. This fixes an inconsistency in which some transactions can be lost or sent twice when a node is parted.

BDR5.7.0
Fixed a crash during upgrades in a mixed-version cluster.

Upgrading from versions earlier than 5.6.0 to 5.6.0 and later in a mixed-version cluster with a standby or a node joining/parting could cause a crash.

BDR5.7.0
Unsupported ALTER TABLE command on materialized views is no longer replicated.

Replication no longer becomes stuck when the command is issued.

BDR5.7.0Disallowed `GRANT` on BDR objects to non-BDR users.
BDR5.7.0Improved maintenance of the `bdr.leader` table.

Deprecations

ComponentVersionDescriptionAddresses
PGD CLI5.7.0
Deprecated proxy commands in new PGD CLI command structure.

The proxy commands are deprecated in the new CLI command structure. The proxy commands are still available in the legacy CLI command structure. Proxy options can be set using the pgd group set-option command.

PGD CLI5.7.0
Removed yaml output as an option in PGD CLI

The yaml output option is removed from the PGD CLI. The json output option is still available.

Other

ComponentVersionDescriptionAddresses
BDR5.7.0
Added a GUC to support upgrade to 5.7.0 for clusters with optimized topology (a preview feature).

An upgrade to 5.7.0 from clusters that have bdr.force_full_mesh set to off to enable optimized topology (a preview feature) must first set this GUC to on and then upgrade. After the entire cluster upgrades, this GUC can be set to off again to enable optimized topology. Having this GUC set to off during upgrade isn't supported.