Compatibility changes v6.0.0

Upgrading BDR from 4.x to 6.x is possible.

Connection routing

HARP Manager and Proxy and it's replacement, PGD Proxy have been replaced. They are supreceded by the new integrated connection management system.

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 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.create_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
);

Lag Control

Similarly to CAMO and Eager, Lag Control configuration was also moved to commit scopes for more flexible durability configuration.

Catalogs

  • bdr.workers doesn't show worker-specific info like worker_commit_timestamp anymore.
  • bdr.worker_errors is deprecated and lost most of the info.
  • bdr.state_journal_details is deprecated and lost most of the info.
  • bdr.event_summary replaces bdr.worker_errors and bdr.state_journal_details with additional info like Raft role changes.
  • The table bdr.node_catchup_info now has the user-consumable view bdr.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_kind value in bdr.node_summary.
  • All the Raft (consensus) related tables and functions were adjusted to support multiple Raft instances (sub-group Raft).
  • bdr.node_pre_commit view and the underlying table was removed, as the information is no longer stored in a table.
  • bdr.commit_decisions view was added and replaces the bdr.node_pre_commit one.
  • Multiple internal autopartition tables were replaced by taskmgr ones, as the mechanism behind it was generalized.
  • bdr.network_monitoring view 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.