BDR 4.0.2

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

Type

Category

Description

Improvement

Reliability and operability

Add bdr.max_worker_backoff_delay (BDR-1767) <p>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.</p>

Improvement

User Experience

Add execute_locally option to bdr.replicate_ddl_command() (RT73533)<p> This allows optional queueing of ddl commands for replication to other groups without executing it locally.</p>

Improvement

User Experience

Change ERROR on consensus issue during JOIN to WARNING<p> The reporting of these transient errors was confusing as they were also shown in bdr.worker_errors. These are now changed to WARNINGs.</p>

Bug fix

Reliability and operability

WAL decoder confirms end LSN of the running transactions record (BDR-1264) <p> 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.</p>

Bug fix

Reliability and operability

Don’t wait for autopartition tasks to complete on parting nodes (BDR-1867) <p> 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.</p>

Bug fix

User Experience

Improve handling of node name reuse during parallel join (RT74789) <p>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.</p>

Bug fix

Reliability and operability

Fix locking and snapshot use during node management in the BDR manager process (RT74789)<p> 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.</p>

Bug fix

Reliability and operability

Improve cleanup of catalogs on local node drop<p> Drop all groups, not only the primary one and drop all the node state history info as well.</p>

Bug fix

User Experience

Improve error checking for join request in bdr_init_physical<p> 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.</p>

Bug fix

Reliability and operability

Improve handling of various timeouts and sleeps in consensus<p>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.</p>

Bug fix

Reliability and operability

Fix handling of wal_receiver_timeout (BDR-1848)<p> The wal_receiver_timeout has not been triggered correctly due to a regression in BDR 3.7 and 4.0.</p>

Bug fix

Reliability and operability

Limit the bdr.standby_slot_names check when reporting flush position only to physical slots (RT77985, RT78290) <p> Otherwise flush progress is not reported in presence of disconnected nodes when using bdr.standby_slot_names.</p>

Bug fix

Reliability and operability

Fix replication of data types created during bootstrap (BDR-1784)

Bug fix

Reliability and operability

Fix replication of arrays of builtin types that don’t have binary transfer support (BDR-1042)

Bug fix

Reliability and operability

Prevent CAMO configuration warnings if CAMO is not being used (BDR-1825)

Upgrades

This release supports upgrading from the following versions of BDR:

  • 4.0.0 and higher

The upgrade path from BDR 3.7 is not currently stable and needs to be considered beta. Tests should be performed with at least BDR 3.7.15.

Please make sure you read and understand the process and limitations described in the Upgrade Guide before upgrading.