Multi-master cluster with sharding

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.

  1. Extensible transaction manager API (xTM) with two implementations: DTM (snapshot sharing) and tsDTM (timestamp-based snapshots). Presented in 2015, patches are published.  Got feedback during PostgreSQL 9.6 commitfest.  Revised patch will be re-submitted for 9.7.
  2. Multi-master cluster with high availability based on tsDTM and logical decoding.  Will be presented at PGCon 2016.
  3. 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.