Release notes for EDB Postgres Distributed version 4.0.2 v4

Released: 24 Feb 2022

This is a maintenance release for BDR 4.0 and HARP 2.0 which includes minor improvements as well as fixes for issues identified in previous versions.

BDR4.0.2EnhancementAdd bdr.max_worker_backoff_delay (BDR-1767)

This changes the handling of the backoff delay to exponentially increase from bdr.min_worker_backoff_delay to bdr.max_worker_backoff_delay in presence of repeated errors. This reduces log spam and in some cases also prevents unnecessary connection attempts.

BDR4.0.2EnhancementAdd execute_locally option to bdr.replicate_ddl_command() (RT73533)

This allows optional queueing of ddl commands for replication to other groups without executing it locally.

BDR4.0.2EnhancementChange ERROR on consensus issue during JOIN to WARNING

The reporting of these transient errors was confusing as they were also shown in bdr.worker_errors. These are now changed to WARNINGs.

BDR4.0.2Bug fixWAL decoder confirms end LSN of the running transactions record (BDR-1264)

Confirm end LSN of the running transactions record processed by WAL decoder so that the WAL decoder slot remains up to date and WAL senders get the candidate in timely manner.

BDR4.0.2Bug fixDon't wait for autopartition tasks to complete on parting nodes (BDR-1867)

When a node has started parting process, it makes no sense to wait for autopartition tasks on such nodes to finish since it's not part of the group anymore.

BDR4.0.2Bug fixImprove handling of node name reuse during parallel join (RT74789)

Nodes now have a generation number so that it's easier to identify the name reuse even if the node record is received as part of a snapshot.

BDR4.0.2Bug fixFix locking and snapshot use during node management in the BDR manager process (RT74789)

When processing multiple actions in the state machine, make sure to reacquire the lock on the processed node and update the snapshot to make sure all updates happening through consensus are taken into account.

BDR4.0.2Bug fixImprove cleanup of catalogs on local node drop

Drop all groups, not only the primary one and drop all the node state history info as well.

BDR4.0.2Bug fixImprove error checking for join request in bdr_init_physical

Previously bdr_init_physical would simply wait forever when there was any issue with the consensus request, now we do same checking as the logical join does.

BDR4.0.2Bug fixImprove handling of various timeouts and sleeps in consensus

This reduces the amount of new consensus votes needed when processing many consensus requests or time consuming consensus requests, for example during join of a new node.

BDR4.0.2Bug fixFix handling of wal_receiver_timeout (BDR-1848)

The wal_receiver_timeout has not been triggered correctly due to a regression in BDR 3.7 and 4.0.

BDR4.0.2Bug fixLimit the bdr.standby_slot_names check when reporting flush position only to physical slots (RT77985, RT78290)

Otherwise flush progress is not reported in presence of disconnected nodes when using bdr.standby_slot_names.

BDR4.0.2Bug fixFix replication of data types created during bootstrap (BDR-1784)
BDR4.0.2Bug fixFix replication of arrays of builtin types that don't have binary transfer support (BDR-1042)
BDR4.0.2Bug fixPrevent CAMO configuration warnings if CAMO is not being used (BDR-1825)
HARP2.0.2EnhancementBDR consensus now generally available.

HARP offers multiple options for Distributed Consensus Service (DCS) source: etcd and BDR. The BDR consensus option can be used in deployments where etcd isn't present. Use of the BDR consensus option is no longer considered beta and is now supported for use in production environments.

HARP2.0.2EnhancementTransport layer proxy now generally available.

HARP offers multiple proxy options for routing connections between the client application and database: application layer (L7) and transport layer (L4). The network layer 4 or transport layer proxy simply forwards network packets, and layer 7 terminates network traffic. The transport layer proxy, previously called simple proxy, is no longer considered beta and is now supported for use in production environments.