Multi-master cluster with sharding which provides read/write scalability as well as high availability is obviously one of most wanted DBMS features. Experience shows that we should move in step-by-step manner in order to have it in core one day. Postgres Professional company joins community efforts in this direction.
We’re implementing the following development plan.
- Extensible transaction manager API (xTM) with two implementations: DTM (snapshot sharing) and tsDTM (timestamp-based snapshots). Presented in pgconf.eu 2015, patches are published. Got feedback during PostgreSQL 9.6 commitfest. Revised patch will be re-submitted for 9.7.
- Multi-master cluster with high availability based on tsDTM and logical decoding. Will be presented at PGCon 2016.
- Write-scalable multi-master cluster with sharding. We’re going to eventually add sharding capability to our multi-master cluster. It would be reasonable to join one of the existing approaches to distributed query planning/executing: FDW, CitusDB or Postgres-X[CL]. By now, we can’t see a definite leader.