BDR 4.0.1¶
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 |
Reduce frequency of CAMO partner connection attempts. <p> In case of a failure to connect to a CAMO partner to verify its configuration and check the status of transactions, do not retry immediately (leading to a fully busy pglogical manager process), but throttle down repeated attempts to reconnect and checks to once per minute.</p> |
Improvement |
RPerformance and scalability |
Implement buffered read for LCR segment file (BDR-1422) <p> Implement LCR segment file buffering so that multiple LCR chunks can be read at a time. This should reduce I/O and improve CPU usage of Wal Senders when using the Decoding Worker.</p> |
Improvement |
Performance and scalability |
Avoid unnecessary LCR segment reads (BDR-1426) <p> BDR now attempts to only read new LCR segments when there is at least one available. This reduces I/O load when Decoding Worker is enabled.</p> |
Improvement |
Performance and scalability |
Performance of COPY replication including the initial COPY during join has been greatly improved for partitioned tables (BDR-1479) <p> For large tables this can improve the load times by order of magnitude or more.</p> |
Bug fix |
Performance and scalability |
Fix the parallel apply worker selection (BDR-1761) <p> This makes parallel apply work again. In 4.0.0 parallel apply was never in effect due to this bug.</p> |
Bug fix |
Reliability and operability |
Fix Raft snapshot handling of bdr.camo_pairs (BDR-1753) <p> The previous release would not correctly propagate changes to the CAMO pair configuration when they were received via Raft snapshot.</p> |
Bug fix |
Reliability and operability |
Correctly handle Raft snapshots from BDR 3.7 after upgrades (BDR-1754) |
Bug fix |
Reliability and operability |
Upgrading a CAMO configured cluster taking into account the bdr.camo_pairs in the snapshot while still excluding the ability to perform in place upgrade of a cluster (due to upgrade limitations unrelated to CAMO). |
Bug fix |
Reliability and operability |
Switch from CAMO to Local Mode only after timeouts (RT74892) <p> Do not use the catchup_interval estimate when switching from CAMO protected to Local Mode, as that could induce inadvertent switching due to load spikes. Use the estimate only when switching from Local Mode back to CAMO protected (to prevent toggling forth and back due to lag on the CAMO partner).</p> |
Bug fix |
Reliability and operability |
Fix replication set cache invalidation when published replication set list have changed (BDR-1715) <p> In previous versions we could use stale information about which replication sets (and as a result which tables) should be published until the subscription has reconnected.</p> |
Bug fix |
Reliability and operability |
Prevent duplicate values generated locally by galloc sequence in high concurrency situations when the new chunk is used (RT76528) <p> The galloc sequence could have temporarily produce duplicate value when switching which chunk is used locally (but not across nodes) if there were multiple sessions waiting for the new value. This is now fixed.</p> |
Bug fix |
Reliability and operability |
Address memory leak on streaming transactions (BDR-1479) <p> For large transaction this reduces memory usage and I/O considerably when using the streaming transactions feature. This primarily improves performance of COPY replication.</p> |
Bug fix |
Reliability and operability |
Don’t leave slot behind after PART_CATCHUP phase of node parting when the catchup source has changed while the node was parting (BDR-1716) <p> When node is being removed (parted) from BDR group, we do so called catchup in order to forward any missing changes from that node between remaining nodes in order to keep the data on all nodes consistent. This requires an additional replication slot to be created temporarily. Normally this replication slot is removed at the end of the catchup phase, however in certain scenarios where we have to change the source node for the changes, this slot could have previously been left behind. From this version, this slot is always correctly removed.</p> |
Bug fix |
Reliability and operability |
Ensure that the group slot is moved forward when there is only one node in the BDR group<p> This prevents disk exhaustion due to WAL accumulation when the group is left running with just single BDR node for a prolonged period of time. This is not recommended setup but the WAL accumulation was not intentional.</p> |
Bug fix |
Reliability and operability |
Advance Raft protocol version when there is only one node in the BDR group <p> Single node clusters would otherwise always stay on oldest support protocol until another node was added. This could limit available feature set on that single node.</p> |
Upgrades¶
This release supports upgrading from the following versions of BDR:
3.7.14
4.0.0 and higher
Please make sure you read and understand the process and limitations described in the Upgrade Guide before upgrading.