Durability v5

EDB Postgres Distributed (PGD) offers a range of synchronous modes to complement its default asynchronous replication. These synchronous modes are configured through commit scopes: rules that define how operations are handled and when the system should consider a transaction committed.


  • Overview introduces the concepts and some of the essential terminology that's used when discussing synchronous commits.

  • Durability terminology lists terms used around PGD's durability options, including how nodes are referred to in replication.

  • Commit scopes is a more in-depth look at the structure of commit scopes and how to define them for your needs.

  • Commit scope rules looks at the syntax of and how to formulate a commit scope rule.

  • Comparing compares how each option behaves.

Commit scope kinds

  • Group Commit focuses on the Group Commit option, where you can define a transaction as done when a group of nodes agrees it's done.

  • CAMO focuses on the Commit At Most Once option, in which applications take responsibility for verifying that a transaction has been committed before retrying. This ensures that their commits only happen at most once.

  • Lag Control looks at the commit scope mechanism which dynamically throttle nodes according to the slowest node and regulates how far out of sync nodes may go when a database node goes out of service.

  • Synchronous Commit examines a commit scope mechanism which works in a similar fashion to legacy synchronous replication, but from within the commit scope framework.

Working with commit scopes

  • Administering addresses how a PGD cluster with Group Commit in use should be managed.

  • Limitations lists the various combinations of durability options which are not currently supported or not possible. Do refer to this before deciding on a durability strategy.

  • Legacy Synchronous Replication shows how traditional Postgres synchronous operations can still be accessed under PGD.

  • Internal timing of operations compares legacy replication with PGD's async and synchronous operations, especially the difference in the order by which transactions are flushed to disk or made visible.