Compatibility changes#
Many changes in PGD 5 aren’t backward compatible with PGD 4 or PGD 3.7.
Connection routing#
- HARP Manager doesn’t exist anymore. It’s been replaced by new
Connection management configuration.
HARP Proxy is replaced by similarly functioning PGD Proxy, which removes any deprecated features and is configured through connection management configuration.
Commit At Most Once#
CAMO configuration is now done through Commit scopes . The
bdr.camo_pairs catalog and any related manipulation functions don’t
exist anymore. The bdr.enable_camo GUC was removed. The
synchronous_replication_availability GUC doesn’t affect CAMO
anymore. Use the DEGRADE ON ... TO ASYNC clause of a commit scope.
Eager All-Node Replication#
The global scope no longer exists. To create scope with the same
behavior, use Group commit .
SELECT bdr.add_commit_scope(
commit_scope_name := eager_scope,
origin_node_group := top_group,
rule := ALL (top_group) GROUP COMMIT (conflict_resolution = eager, commit_decision = raft) ABORT ON (timeout = 60s),
wait_for_ready := true
);
The bdr.global_commit_timeout GUC was removed. Use the ABORT ON
clause for the commit scope.
Lag Control#
- Similarly to CAMO and Eager, Lag Control configuration was also moved to
Commit scopes for more flexible durability configuration.
Catalogs#
bdr.workersdoesn’t show worker-specific info likeworker_commit_timestampanymore.bdr.worker_errorsis deprecated and lost most of the info.bdr.state_journal_detailsis deprecated and lost most of the info.bdr.event_summaryreplacesbdr.worker_errorsandbdr.state_journal_detailswith additional info like Raft role changes.The table
bdr.node_catchup_infonow has the user-consumable viewbdr.node_catchup_info_details, which shows info in a more friendly way.Witness node is no longer distinguished by the replication sets it replicates but by using the
node_kindvalue inbdr.node_summary.All the Raft (consensus) related tables and functions were adjusted to support multiple Raft instances (sub-group Raft).
bdr.node_pre_commitview and the underlying table was removed, as the information is no longer stored in a table.bdr.commit_decisionsview was added and replaces thebdr.node_pre_commitone.Multiple internal autopartition tables were replaced by taskmgr ones, as the mechanism behind it was generalized.
bdr.network_monitoringview was removed along with underlying tables and functions.Many catalogs were added and some have new columns, as described in Catalogs . These aren’t breaking changes strictly speaking, but we recommend reviewing them when upgrading.