EDB Postgres Distributed 6.3.0 release notes v6.3.0

Released: 26 March 2026

EDB Postgres Distributed (PGD) 6.3.0 includes new features, enhancements, and bug fixes focused on improving stability and reliability.

Highlights

  • Connection Manager on subscriber-only nodes: Connection Manager now starts by default on subscriber-only nodes, providing access to advanced connection pooling and session management features. It also re-routes all read-only traffic to the local node to reduce latency.
  • Consensus management via PGD CLI: The PGD CLI now includes commands to enable or disable Raft consensus on specific nodes or groups. The commands pgd raft enable and pgd raft disable provide granular control over node behavior.
  • Platform support update: PGD is now supported on SUSE Linux Enterprise Server (SLES) 15 SP7 beginning with 6.3.0.

Features

DescriptionAddresses
Connection Manager starts by default on subscriber-only nodes and includes new health check endpoints.

Connection Manager now initializes automatically on subscriber-only nodes. This release also adds the /connection/is-ready-ro and /connection/is-ready-rw HTTP endpoints to provide granular readiness checks for read-only and read-write traffic.

Added the pgd raft set-leader command.

Introduced the pgd raft set-leader command, allowing users to manually change the Raft leader for a specific group.

Added pgd raft enable and pgd raft disable commands.

Added commands to enable or disable consensus (Raft) across different nodes, groups, or cluster levels.

Enhancements

DescriptionAddresses
Improved the group deletion process to automatically drop associated replication sets.

Enhanced the node group removal logic to automatically drop replication sets of the same name.

57531
Improved the consistency of Connection Manager against pg_hba.conf.

Enhanced how the Connection Manager matches database names and usernames against pg_hba.conf fields. Key improvements include support for sameuser matching, refined samerole logic, and expanded +rolename matching to include the role itself and indirect members. Additionally, quotes are now stripped from usernames before matching to ensure consistent authentication behavior.

Added support for user name mapping (pg_ident.conf) to the Connection Manager.

This enhancement allows the Connection Manager to use pg_ident.conf for user name mapping. Currently, this functionality applies to the cert authentication method, aligning Connection Manager behavior with PostgreSQL’s native authentication identity mapping.

Improved the bdr.reconcile_2pc_requests table and added the view bdr.reconcile_2pc_requests_summary.

Enhanced bdr.reconcile_2pc_requests to include more details such as request time, origin LSN, and commit timestamp. Additionally, added a user-friendly view, bdr.reconcile_2pc_requests_summary, to simplify monitoring of Two-Phase Commit (2PC) reconciliation.

Improved conflict handling for origin changes in group commit.

Enhanced group commit to perform eager conflict detection and resolution when the origin of a transaction changes. Conflict handling now relies on timestamp-based detection rather than replication-progress speculation. To ensure optimal performance and avoid increased commit latency, you must synchronize system clocks across all nodes.

Added the bdr.stat_reconcile_commit_scope view for improved monitoring.

Introduced a new system view, bdr.stat_reconcile_commit_scope, which provides real-time statistics for commit scope reconciliation.

Improved write leader election logic via two new bdr.node_group_config options.

Introduced new options for bdr.node_group_config, which allow the cluster to select the most advanced candidate replica during leader transitions:

  • leader_progress_tracking_enable: Periodically reports replication progress to the Raft leader.
  • leader_progress_tracking_period: Configures the reporting interval.
Added support for ALTER SEQUENCE ... RENAME and ALTER SEQUENCE ... SET SCHEMA for galloc sequences.

Renaming galloc sequences or moving them between schemas is now fully supported. This is enabled by a global UUID identifier (sequuid) in the bdr.sequence_kind catalog, which allows PGD to track these sequences consistently and concurrently. This functionality works even for sequences upgraded from versions prior to PGD 6.3, as PGD automatically generates the required UUIDs for existing sequences to ensure compatibility.

Added the bdr.prepared_xacts_summary diagnostic view.

Introduced bdr.prepared_xacts_summary, a local diagnostic view for monitoring prepared transactions implicitly created by group commit scopes.

Changes

DescriptionAddresses
Standalone macOS PGD CLI is now ARM64 only.

The standalone PGD CLI for macOS is now available exclusively for the Apple Silicon (ARM64) architecture. This change applies only to the standalone macOS binary; the availability and support for standalone PGD CLI binaries on GNU/Linux remain unchanged.

Bug Fixes

DescriptionAddresses
Fixed a replication crash loop caused by interrupted partition detaching.

Resolved an issue where logical replication would enter an infinite crash loop if a DETACH PARTITION CONCURRENTLY command was interrupted. Previously, the walsender would fail with the error relation has no parent because it's being detached when decoding WAL for a partition in a detach-pending state.

53628, 59291
Fixed a walsender crash loop during partition detachment.

Fixed an issue where the walsender process could enter a crash loop when encountering partitions with inhdetachpending = true, which reported ERROR: relation %u has no parent failures.

53628, 59291
Fixed ALTER ROLE replication failures.

Fixed an issue where replication would break because attributes like NOSUPERUSER or NOREPLICATION were automatically added to the replicated command. Since these options can only be altered by a superuser, the apply process failed on downstream nodes. This change ensures the replicated command only includes options that were explicitly specified and for which the user has sufficient privileges.

54906
Fixed encoding charset issue with pgd setup command.

The command now attempts to fetch the encoding value directly from the remote node, defaulting to UTF8 if unavailable.

Fixed the in-line help for the pgd group set-option command.

Corrected the help text for pgd group set-option to accurately reflect group-level options.

Fixed the matrix view output for the pgd replication show command.

Inactive/disconnected slots now display ! instead of * when lag is below 10 MB, restoring consistency.

56295
Fixed a memory growth in the consensus shared memory queue.

Prevented shared memory queues used by consensus from growing while a node is unreachable, ensuring that memory remains stable during node outages.

Fixed a memory leak in the consensus process when subscriber-only nodes are down.

Resolved a malloc-based memory leak related to the improper freeing of connection strings.

57094
Fixed an issue where the use_https node group configuration option was ignored.

Resolved a bug where Connection Manager incorrectly ignored the use_https setting. When upgrading to PGD 6.3.0 or 5.9.2, you must explicitly enable HTTPS by setting the use_https group option to true (in addition to having ssl_cert_file and ssl_key_file configured in postgresql.conf or via the command line) before the upgrade to maintain previous behavior.

Fixed a Connection Manager memory leak occurring during configuration reloads.

Resolved a memory leak in the Connection Manager caused by incorrect handling of Postgres memory contexts during configuration reloads.

Fixed a segmentation fault occurring during COPY commands when pgaudit.role is set to a non-default value.

Resolved an issue where Postgres would crash with a segmentation fault when executing a COPY command if the pgaudit.role configuration was set to a non-default value.

58060
Fixed an issue where setting retention_period and analytics_offload_period simultaneously on AutoPartition tables caused conflicts.

Improved the coordination between data retention and analytics offloading. Partitions are now offloaded using Postgres Analytics Accelerator (PGAA) before the data retention policy is applied.

Fixed an issue with the analytics replicator, which could cause redundant replication processes.

In cluster topologies with subgroups and analytics enabled in the parent group, a bug caused each subgroup's write leader to start its own analytics replicator instance, resulting in duplicate rows. This fix ensures that only one analytics replicator per PGD group runs across the cluster.

Fixed an infinite loop in the Connection Manager that occurred when a server connection was unexpectedly closed.

Resolved a race condition in the Connection Manager where an unexpected server disconnection during the retrieval process from a connection pool would trigger an infinite loop. This issue was specifically limited to clusters operating in session pooling mode.

Improved lock handling during change application to prevent data corruption from concurrent backends.

Table and index locks are now held until transaction commit when applying changes. This ensures correct serialization and prevents data consistency issues during concurrent operations, specifically addressing risks introduced by parallel apply.

Parallel Apply can now be enabled when PGD is deployed with community Postgres.

Resolved an issue where enabling Parallel Apply on community PostgreSQL caused writer hangs and stuck subscriptions due to frequent lock timeouts. This fix allows Parallel Apply to be used reliably without requiring it to be disabled as a workaround.

54565, 57005, 57327
Improved Connection Manager resilience during file descriptor exhaustion.

Connection Manager now automatically recovers from file descriptor exhaustion. If the system limit is reached, the process will close listening sockets and automatically restart after 30 seconds to restore connectivity.

Fixed false error reporting during node group creation.

Resolved a race condition where bdr.create_node_group could return an error even if the group was successfully created. The function now correctly waits for node creation to fully complete before returning.

Fixed proxy configuration loss after bdr_init_physical.

Fixed an issue where proxy configurations were not preserved after running bdr_init_physical due to Raft snapshot restores failing to persist proxy settings.

58319
Fixed stale galloc sequence allocation entries after DROP and CREATE.

Fixed a bug where sequence_alloc entries persisted after a galloc sequence was dropped and recreated. The fix ensures proper cleanup propagation across the cluster, including witness nodes.

Fixed bdr.alter_sequence_set_kind ignoring start values for galloc sequences.

Fixed an issue where changing a sequence kind to galloc would silently discard the provided start_value. Additionally, resolved a bug where a startval of 0 was lost during WAL replication.

Prevented duplicate data replication during analytics write leader transitions.

Fixed an issue where the analytics replicator on a previous write leader could continue running simultaneously with the replicator on the new leader. This synchronization improvement ensures the old process stops completely before the new one initializes, preventing duplicate data inserts. This fix includes the addition of the bdr.group_lease catalog table and the bdr.group_lease_override function.