pglogical 3.7 v3.7
The pglogical 3.7 extension provides logical streaming replication for PostgreSQL, using a publish/subscribe model. It is based on technology developed as part of the BDR3 project.
We use the following terms to describe data streams between nodes:
- Nodes - PostgreSQL database instances
- Providers and Subscribers - roles taken by Nodes
- Replication Set - a collection of tables
These terms have been deliberately reused from the earlier Slony technology.
pglogical is new technology utilizing the latest in-core features, so we require both provider and subscriber nodes to run PostgreSQL 10 or newer.
Use cases supported are:
- Upgrades between major versions (given the above restrictions)
- Full database replication
- Selective replication of sets of tables using replication sets
- Selective replication of table rows at either provider or subscriber side (row_filter)
- Selective replication of table columns at provider side
- Data gather/merge from multiple upstream servers
Architectural details:
- pglogical works on a per-database level, not whole server level like physical streaming replication
- One Provider may feed multiple Subscribers without incurring additional disk write overhead
- One Subscriber can merge changes from several origins and detect conflict between changes with automatic and configurable conflict resolution (some, but not all aspects required for multi-master).
- Cascading replication is implemented in the form of changeset forwarding.