EDB Postgres Distributed 5.1.0 release notes v5

Released: 16 May 2023

EDB Postgres Distributed version 5.1.0 is a minor version of EDB Postgres Distributed. This version addresses security vulnerabilities in dependencies for PGD Proxy and PGD CLI.

Highlights of EDB Postgres Distributed 5.1

  • Synchronous Commit is now available in PGD’s unified COMMIT SCOPE syntax. Modeled on Postgres’s legacy synchronous commit option, PGD Synchronous Commit allows DBAs to take advantage of the finer-grained commit and sync management. This addition complements the existing Group Commit, CAMO, and Lag Control commit scope options.

  • Fixes to priority-based proxy routing now enable better handling of failover. You can now configure the grace period for proxies through PGD CLI, allowing you to tune proxy response to losing the Raft leader. To accompany that, Raft events are visible in the PGD CLI’s show-events command, showing the event, source, and subtype.

  • bdr.drop_node_group() adds support for removing empty node groups using the PGD SQL interface.

Recommended upgrade

We recommend that users of PGD 5.0 upgrade to PGD 5.1.

PostgreSQL version compatibility

This version is required for EDB Postgres Advanced Server versions 12.15, 13.11, 14.8, and later.

BDR5.1.0FeatureAdded pid to the log message emitted upon writer process death.
BDR5.1.0FeatureAdded group name in the bdr.event_summary view.
BDR5.1.0FeatureAdded SLES support. SLES 15sp4 is now supported.
BDR5.1.0FeatureAdded subscription status column to the group subscription summary view.
This feature allows you to distinguish whether NULL values are due to a node being down or a subscription being disabled.
BDR5.1.0FeatureAdded NOT group filter to Group Commit.
This feature allows you to invert the meaning of a group filter to include all nodes except the ones in specified groups.
BDR5.1.0FeatureAdded bdr.drop_node_group.
You can now drop empty node groups.
BDR5.1.0FeatureAdded SYNCHRONOUS_COMMIT to commit scopes.
This feature allows dynamic synchronous_commit-like behavior for replication.
BDR5.1.0FeatureAdded event_node_name column to bdr.event_summary.
BDR5.1.0FeatureAdded write leader election to event history.
Added information about the node that's elected as a write leader for each group in the event_history catalog. Also improved the reporting of raft instance ids in the event_detail of event_history.
BDR5.1.0FeatureAdded ability to allow exporting and importing of other Raft instance snapshots.
This feature allows exporting and importing snapshots for other instances and not only top Raft instances.
BDR5.1.0Bug fixFixed memory leak in consensus process. (RT91830)
BDR5.1.0Bug fixFixed issue where a node can be inconsistent with the group after rejoining.
If a node was part of a subgroup, parted, and then rejoined to the group, it could be inconsistent with the group. The changes from some nodes of the group were replayed from a wrong starting point, resulting in potential data loss.
BDR5.1.0Bug fixFixed join and replication when SDW and standby_slot_names are set. (RT89702, RT89536)
BDR5.1.0Bug fixFixed spurious warnings when processing sequence options. (RT90668)
BDR5.1.0Bug fixFixed upgrades for nodes with CRDTs.
BDR5.1.0Bug fixAdjusted lag tracking parameters for LCRs from pg_stat_replication.
BDR5.1.0Bug fixAdjusted node routing options defaults based on node kind.
This change is related only to the display of the information and not the behavior. For example, witness nodes aren't marked as candidates for receiving writes.
BDR5.1.0Bug fixAll sequences are now converted to "distributed" during create node.
BDR5.1.0Bug fixFixed streaming transactions with standby_slot_names.
This might have led to a subscriber-only node getting ahead of a data node.
BDR5.1.0Bug fixMade priority work properly for routing selection.
Previously, node priority was working only if there wasn't a previous leader, which is never the case on failover.
BDR5.1.0Bug fixFixed the recording of its join as complete for the first node.
BDR5.1.0Bug fixDisabled tracing by default.
Tracing was enabled only for initial debugging and was meant to be disabled before 5.0 release.
BDR5.1.0Bug fixAdded support for reload configuration for the pglogical receiver.
When the server receives a reload signal, the pglogical receiver reloads and applies the configuration changes.
BDR5.1.0Bug fixImproved missing instance error message in bdr.monitor_group_raft().
BDR5.1.0Bug fixImplemented consistent use of tcp keepalives across all BDR connections.
This change added the following GUCs:
The defaults are set to fairly conservative values and are subject to adjustments in the future patches.
BDR5.1.0Bug fixClosed Raft connections on no activity after a timeout.
This uses wal_sender_timeout/wal_receiver_timeout underneath.
BDR5.1.0Bug fixMade backends that receive Raft messages easily identifiable.
Added information in the log message related to Raft backends.
BDR5.1.0Bug fixFixed issue whereby Parallel Apply might slow down under heavy load.
BDR5.1.0EnhancementRestarting sync workers is now avoided.
This fix is to prevent the node join from failing when config changes are made that signal the restart of subscription workers.
PGD Proxy5.1.0Enhancementapplication_name is now set to proxy name if it wasn't set by the user in the connection string for internal db connections.
PGD Proxy5.1.0EnhancementImplemented the new consensus_grace_period proxy option, which is the duration for which a proxy continues to route to the current write leader (if it's available) upon loss of a Raft leader. If the new Raft leader isn't elected during this period, the proxy stops routing. If set to 0s, the proxy stops routing immediately.
PGD Proxy5.1.0Bug fixChanged from blocking when write leader is unavailable to closing the new client connections.
CLI5.1.0EnhancementEnhanced the show-events command to show Raft events, event source and subtype.
CLI5.1.0EnhancementImproved clockskew estimation in show-clockskew and check-health commands.
CLI5.1.0FeatureAdded support to view and set consensus_grace_period proxy option.
Utilities1.1.0Bug fixImplemented handling of uninitialized physical replication slots issue.