EDB Postgres Distributed 5.0.0 release notes v5

Released: 21 Feb 2023

EDB Postgres Distributed version 5.0.0 is a is a new major version of EDB Postgres Distributed. This version brings major new features and compatibility changes.

The highlights of this release include:

  • Flexible deployment architectures
  • Enhanced routing capabilities
  • Unified replication durability configuration
  • Support for EDB Advanced Storage Pack
  • Support for TDE with EDB Postgres Advanced 15 and EDB Postgres Extended 15
  • Integration with OpenTelemetry
  • Improved transaction tracking performance (Group Commit, CAMO)
  • Postgres 12 to 15 compatiblity
ComponentVersionTypeDescription
PGD5.0.0FeatureFlexible Deployment Architectures
Redefined Always-ON to support wider variety of deployments.
BDR5.0.0FeatureEnhanced routing capabilities
BDR cluster elects a write leader for every group (and associated location) using per group Raft when routing is enabled for the group. It takes care of write leader failover and provides SQL commands to change a write leader.
BDR5.0.0FeatureSupport for EDB Advanced Storage Pack
EDB Advanced Storage Pack provides advanced storage options for PostgreSQL databases in the form of table access method (TAM) extensions. These storage options can enhance the performance and reliability of databases without requiring application changes.
BDR5.0.0FeatureUnified replication durability configuration
The durability options such as Group Commit, CAMO, Eager Replication or Lag Control are now all configured through commit scope configuration.
BDR5.0.0FeatureEDB Postgres Advanced and EDB Postgres Extended TDE support
EDB Postgres Distributed 5 fully supports the Transparent Data Encryption feature in EDB Postgres Advanced and EDB Postgres Extended.
BDR5.0.0FeatureIntegration with OpenTelemetry
BDR extension can now send monitoring metrics as well as traces to the OpenTelemetry collector for better integration with existing monitoring solutions.
BDR5.0.0FeaturePostgres 15 compatibility
EDB Postgres Distributed 5 is compatible with Postgres 12 to 15.
BDR5.0.0FeatureImproved Cluster Event Management
The bdr.worker_errors and bdr.state_journal_details view were replaced by unified bdr.event_summary which also include changes in Raft role for the local node. In the future additional events may be added to it.
BDR5.0.0ChangeImproved transaction tracking performance
Transaction tracking now uses shared memory instead of bdr.internal_node_pre_commit catalog which considerably improves performance as it does not incur additional I/O.
BDR5.0.0FeatureSupport non-default replication sets with Decoding Worker
Allows Decoding Worker feature to be used in clusters using non-default replication sets like asymmetric replication setup.
BDR5.0.0FeatureAdd support for HASH partitioning in Autopartition
Extend autopartition/autoscale to support HASH partitioning. Many of things that are required for RANGE partitioning are not needed for HASH partitioning. For example, we expect to create all HASH partitions in one go (at least for the current work; later we may change this). We don't expect HASH partitions to be moved to a different tablespace or dropped. So data retention policies don't apply for HASH partitioning.
BDR5.0.0FeatureAdd a new benchmarking utility pgd_bench
The utility supports benchmarking CAMO transactions and in future releases will be used for benchmarking PGD specific workloads.
BDR5.0.0ChangeNodes now have a node kind
This better differentiates different kinds of nodes such as data, witness, subscriber-only and standby.
BDR5.0.0ChangeSeparate Task Management from Autopartition
In this release, the autopartition work queue mechanism has been moved to a separate module called Task Manager (taskmgr). The task manager is responsible for creating new tasks and executing the ones created by the local node or the task manager leader node. The autopartition worker is thus renamed as taskmgr worker process in this release.

In the older PGD releases, the Raft leader was responsible for creating new work items. But that creates a problem because a witness node can become a Raft leader while it does not have the full view of the cluster objects. In this release, we have introduced a concept of Task Manager Leader node. The node is selected automatically by PGD, but for upgraded clusters, its important to set the node_kind property for all nodes in the cluster. The user is expected to do this manually after upgrading to the latest PGD version by calling bdr.alter_node_kind() SQL function for each node.
BDR5.0.0Deprecationbdr.assess_lock_statement and bdr.assess_update_replica_identity are deprecated.
Proxy5.0.0FeaturePGD built-in proxy
A TCP layer 4, pass through proxy for PGD cluster using routing capabilities of BDR.

CLI5.0.0FeaturePGD cluster verification
CLI supports two new commands verify-settings and verify-cluster. verify-settings verifies the PostgreSQL configuration of each node in a PGD cluster against the recommendations. verify-cluster verifies the PGD cluster architectures against the flexible architecture deployment recommendations.

CLI5.0.0FeatureProxy management and configuration
pgd supports create-proxy, delete proxy, set-group-options, set-node-options, set-proxy-options, show-proxies, show-groups and switchover to configure and manage Proxy per group.
CLI5.0.0ChangeRemove show-camo command and remove CAMO check from check-health command. Support for commit scopes in CLI will be added in a future release.
CLI5.0.0ChangeModify output of show-nodes and show-raft commands to accomodate routing capabilities.