BDR User Guide
From PostgreSQL wiki
BDR stands for BiDrectional Replication. At the PgCon2012CanadaInCoreReplicationMeeting an inital version of the design was presented.
A presentation containing reasons leading to the current design and a prototype of it, including preliminary performance results, is available.
- in core
- reusable individual parts (see below), usable by other projects (slony, ...)
- basis for easier sharding/write scalability
Reads and filters the wal. For the purpose of BDR all purely physical and index changes can be filtered out.
Using the existing code in xlog.c was considered to be to complex because it very tightly integrates into its current usage.
Reconstructs whole transactions from a stream of interspersed individual changes. Handles subtransactions and merges them into the main transaction if the were successful.
Used to make DDL work accross nodes.
Small support module thats used to make low-overhead list manipulations without additional memory management/pointer indirection overhead easy.