Known issues#
These are currently known issues in EDB Postgres Distributed 5. These known issues are tracked in PGD’s ticketing system and are expected to be resolved in a future release.
If the resolver for the
update_origin_changeconflict is set toskip,synchronous_commit=remote_applyis used, and concurrent 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 PGD writer. As mentioned in Conflicts ,skipisn’t the default resolver for theupdate_origin_changeconflict, and this combination isn’t 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 theskipconflict resolver, note the issue with the use of theremote_applymode.The Decoding Worker feature doesn’t work with CAMO/Eager/Group Commit. Installations using CAMO/Eager/Group Commit must keep
enable_wal_decoderdisabled.Lag Control doesn’t adjust commit delay in any way on a fully isolated node, that is, in case all other nodes are unreachable or not operational. As soon as at least one node is connected, replication Lag Control picks up its work and adjusts the PGD commit delay again.
For time-based Lag Control, PGD currently uses the lag time (measured by commit timestamps) rather than the estimated catchup time that’s based on historic apply rates.
Changing the CAMO partners in a CAMO pair isn’t currently possible. It’s possible only to add or remove a pair. Adding or removing a pair doesn’t need a restart of Postgres or even a reload of the configuration.
Group Commit can’t be combined with CAMO or commit-at-most-once or Eager All-Node Replication . Eager Replication currently works only by using the global PGD commit scope.
Transactions using Eager Replication can’t yet execute DDL. The TRUNCATE command is allowed.
Parallel apply isn’t currently supported in combination with Group Commit. Make sure to disable it when using Group Commit by either:
Setting
num_writersto 1 for the node group using bdr.alter_node_group_config .Using the GUC
bdr.writers_per_subscription. See Configuration of generic replication .
There currently is no protection against altering or removing a commit scope. Running transactions in a commit scope that’s concurrently being altered or removed can lead to the transaction blocking or replication stalling completely due to an error on the downstream node attempting to apply the transaction. Ensure that any transactions using a specific commit scope have finished before altering or removing it.
The Using PGD CLI can return stale data on the state of the cluster if it’s still connecting to nodes that were previously parted from the cluster. Edit the pgd-cli-config.yml
file, or change your --dsn
settings to ensure only active nodes in the cluster are listed for connection.
Details of other design or implementation Limitations are also available.