EDB Postgres Distributed 6.1.0 release notes v6.1.0

Released: 19 August 2025

This is a minor release of PGD 6, which introduces direct upgrade support from PGD 4.4.0+ and PGD 5.9.0+. This makes it the first version of PGD 6 that allows for a seamless, in-place upgrade from older versions. In addition to this key feature, PGD 6.1.0 also includes a variety of new features, enhancements, and important bug fixes.

Highlights

  • Seamless upgrades from PGD 4 and PGD 5 to PGD 6: PGD 4.4.0+ and PGD 5.9.0+ users can now perform a direct upgrade to PGD 6, beginning with PGD 6.1.0, ensuring a smooth transition to the latest features.
  • Replication to Apache Iceberg: PGD now supports replication to Apache Iceberg when using the Analytics Accelerator. This new capability allows you to stream data directly from your PGD cluster to an Iceberg data lake and also query the Iceberg data directly from within PGD. This significantly expands your options for large-scale data analytics and integration.
  • PGD 6 now supports Materialized Views: The CREATE, ALTER, REFRESH, and DROP commands are replicated across the cluster, ensuring that materialized views are consistent on all nodes. When a materialized view is created or concurrently refreshed, the data is populated on the upstream node and then replicated to others, providing full support for this functionality.
  • PGD 6 is now on IBM LinuxONE: PGD's native capabilities are expanded with new support for IBM LinuxONE, offering optimized uptime, throughput, and energy efficiency.

Features

DescriptionAddresses
Added CLI commands to get and update Postgres settings (GUC).

Add the pgd node get-config and pgd node set-config commands to allow users to retrieve and modify Postgres settings (GUC) via the CLI.

New drop_after_retention_period argument added to the bdr.autopartition function

bdr.autopartition() now takes an additional boolean argument drop_after_retention_period which can be set to false if the user does not want the partition to be dropped, but only detached.

Simplified Node Configuration with the PGD CLI

The pgd command-line tool now includes new commands to make managing individual node configurations easier. You can now use pgd node <node-name> get-config and pgd node <node-name> set-config to retrieve and update specific Postgres settings (GUCs) for any node in your cluster directly from the CLI.

PGD CLI View Commit Scopes

The PGD CLI now includes a new command, pgd commit-scopes list, that allows you to view the commit scope configuration for your cluster. This command provides details on all commit scopes, including their rules and the groups they apply to, which improves the visibility and management of your data consistency settings.

PGD CLI - Part a Node from a Cluster

The PGD CLI now includes a new command, pgd node part, which provides a streamlined way to remove a node from an active cluster. This command automates the process of calling the node_part SQL function and reports on its progress, simplifying node management directly from the command line.

Leader DDL Lock

New lock type leader DDL lock is used by default for locking DDL statements. This lock locks on write-leaders only, not requiring majority nodes to participate in the locking operation. Old behavior can be restored by adjusting bdr.ddl_locking configuration parameter.

Replication of Roles to witness nodes

Roles are now replicated to witness nodes when they join the nodegroup, and also as and when they are created or altered on data nodes. This is useful mainly when dealing with GUC permissions.

Added command to list commit scopes for PGD cluster.

Add a command pgd commit-scopes list to list commit scopes information for PGD cluster.

Added command to part a PGD node from cluster.

Add a command pgd node part to part a PGD node from cluster.

Enhancements

DescriptionAddresses
Update the pgd group get-option and pgd group show commands to show default values.

The pgd group get-option and pgd group show commands will now display the default values for all options. The pgd group show command will display the source of the option values as well.

Apply the PGD Essential constraints for CLI commands.

The CLI will check for and enforce the PGD Essential constraints for the commands as applicable. See PGD Essential CLI Constraints for more details.

Improve Raft snapshot export/import to reset Raft completely

We've made improvements to how our Raft consensus mechanism handles snapshots. This ensures that in the rare event of a data consistency issue, restoring a snapshot will now fully reset the system's state, allowing operations to resume smoothly from a consistent starting point.

EPAS Interval Partition Support for PGD

A new enhancement allows partitions created by EDB Postgres Advanced Server (EPAS) AutoPartition to work correctly within a multi-node PGD environment. This fix ensures partitions are created consistently on each node and are visible across all nodes.

Improved max_connections Error Reporting

The Connection Manager now provides more helpful and specific error messages when a max_connections limit is reached. Users will now see a clear message like "sorry, too many clients already," making it much easier to diagnose connection issues.

Support for commands that generate Table Rewrites in an explicit transaction block

PGD now supports executing ALTER TABLE commands that generate a table rewrite within a transaction block. Multiple commands are supported in a single transaction block. This simplifies complex DDL operations by applying all changes as a single atomic unit and provides performance optimizations when multiple commands target the same table.

Postgres Compatibility with PGD - Phase 5

This is a placeholder for future updates regarding Postgres compatibility.

Changes

DescriptionAddresses
Removal of listen_address Group Option

The listen_address option has been removed from pgd group set-option to simplify configuration. The Connection Manager will now use the value from the listen_addresses GUC directly, resolving issues with setting hostnames or multiple addresses that were previously unsupported.

Bug Fixes

DescriptionAddresses
Fix the pgd cluster verify command warning for witness-only group.

The pgd cluster verify command displayed warning for Data nodes per group check for witness-only group. The check is not applicable for witness-only groups and hence the status Ok will be displayed.

Fix the data dir check for the setup command.

The pgd node setup command checks for the presence of PG_VERSION file in the given data dir option. However the code incorrectly uses the bindir option instead of pgdata.

Fix for Mixed_version Clusters

We've resolved a bug that could cause replication to fail in a mixed-version PGD cluster (e.g., combining Postgres 12 and Postgres 16), an architecture used temporarily during postgres rolling upgrade. Previously, DDL statements on a newer node could lead to replication slot disconnection on older nodes, with an "unrecognized configuration parameter" error. This fix ensures that replication now functions correctly during a rolling upgrade or in a temporary mixed-version state.

Connection Manager Behavior on Routing Changes

The Connection Manager now correctly handles connections following a change in cluster routing configuration (e.g., switching between global and no routing). This resolves unexpected behavior and ensures client connections are routed as intended after a configuration update.

Fix for node_pkey Errors When Rebuilding Parted Nodes

A fix has been added to address a bug that could cause a consensus worker to crash with a duplicate key value violates unique constraint "node_pkey" error when a parted node was being rebuilt. This fix ensures that you can now successfully rebuild a parted node using bdr_init_physical without encountering this issue.

PGD CLI cluster verify Command Fix for Witness-Only Groups

The pgd cluster verify command no longer displays a warning for witness-only groups that do not contain data nodes. This resolves an issue where the command incorrectly flagged these groups, ensuring that the verification output is now accurate for all cluster types.

Raft Fix for Parting Lagging Nodes

Raft no longer fails to recover after a heavily-lagging node that was previously a leader is parted from the cluster. This fixes a bug where the Raft leader could crash with a "BDR node XXX not found" error, which previously required a manual, forceful reset of the Raft state. Now, Raft correctly handles this scenario and recovers automatically, ensuring cluster stability.

Fix for PGD CLI Multi-Group Setup

A bug has been fixed in the PGD CLI setup command that prevented the creation of multi-group clusters. Previously, the command would fail with an unhelpful error when attempting to add a node to a second group. The fix ensures that the command now correctly handles the creation of nodes in new groups, allowing for successful multi-group cluster setup.

Fix for CLI setup Command GUC Update

The PGD CLI setup command no longer fails when attempting to update Postgres settings on remote nodes. This fix resolves a "malformed array literal" error that occurred during the cluster setup, improving the reliability of the initialization process.

Fix for "Clock Has Moved Backwards" Error with Snowflake Sequences

A race condition has been fixed that could cause a "clock has moved backwards" error when using Snowflake sequences, even when the system clock was functioning correctly. This fix ensures the sequence correctly handles concurrent access, preventing this error and improving the reliability of Snowflake sequence generation.

Fix a crash with pg_failover_slots

Ensure that CDC hooks are no-op when recovery is in progress or the backend is not connected to a database. This can definitely happen if pg_failover_slots is active.

Fix a crash on a stat view for connection manager stat

The view bdr.stat_connection_manager_hba_file_rules had some parsing issues on the pg_hba.conf file specifically in the Address/Mask column for the "all" value.

Node kind check

PGD CLI now has a verify check for nodes not having a node kind properly set. This check emits a warning on nodes that are coming from a previous major version upgrade that missed setting the node kind.

Skip the node GUCs update with pgd node setup command.

The pgd node setup verifies the Postgres settings while setting up a PGD node. The command will now skip the node GUCs update as the bdr_superuser role, used by CLI is not allowed to run ALTER SYSTEM queries. The command will continue to verify the Postgres settings and will display a warning message if any of the settings require modification.