’Appendix D¶
This section discusses currently known issues in BDR4.
Data Consistency¶
Please remember to read about Conflicts to understandthe implications of the asynchronous operation mode in terms of dataconsistency.
List of Issues¶
In the remaining part of this section we list a number of known issuesthat are tracked in BDR’s ticketing system, each marked with anunique identifier.
If the resolver for the `update_origin_change` conflict
is set to
skip, andsynchronous_commit=remote_applyis used, andconcurrent updates of the same row are repeatedly applied on two
different nodes, then one of the update statements might hang due
to a deadlock with the BDR writer. As mentioned in the
Conflicts chapter,
skipis not the defaultresolver for the
update_origin_changeconflict, and thiscombination is not intended to be used in production: it discards
one of the two conflicting updates based on the order of arrival
on that node, which is likely to cause a divergent cluster.
In the rare situation that you do choose to use the
skipconflict resolver, please note the issue with the use of the
remote_applymode.
A `galloc` sequence might skip some chunks if the
sequence is created in a rolled back transaction and then created
again with the same name, or if it is created and dropped when DDL
replication is not active and then it is created again when DDL
replication is active.
The impact of the problem is mild, because the sequence
guarantees are not violated; the sequence will only skip some
initial chunks. Also, as a workaround the user can specify the
starting value for the sequence as an argument to the
bdr.alter_sequence_set_kind()function.
Upgrades on PG Extended 13 from BDR 3.7.7 are only supported by adding
new nodes, and not through in-place upgrade of the same data directory.
The `bdr.monitor_local_replslots()` function may return CRITICAL result
saying “There is at least 1 BDR replication slot which is missing” even if
all slots exists in presence of logical standbys or subscribe-only node
groups.
Decoding Worker feature does not work with CAMO/EAGER
Decoding Worker works only with the default replication sets