Postgres-R provides efficient, fast and consistent multi-master replication for shared nothing clusters. It integrates tightly into Postgres and is written in C as well. It is based on scientifically proven algorithms and uses a Group Communication System for all communication and consensus between the nodes.
Prototype, not ready for production
lead developer: Markus Wanner
mailing list: postgres-r-general on pgfoundry
|Scalability||targeting dozens of servers and more.|
|Read scaling||yes||linear to number of nodes|
|Write scaling||yes||very dependent on workload|
|Triggers/procedures/subtransactions||yes||fully supported and transparent to the application|
|Parallel query||no||currently not implemented, but planned|
|Failover/High Availability||yes||configurable for different levels of availability, dependent on GCS|
|Online provisioning||yes||nodes may be added or removed any time|
|PostgreSQL upgrades||yes||designed for upgrades, no official release, yet|
|Detached node/WAN||no||async operation is planned, though|
|PostgreSQL core modifications required||yes|
|Programming languages||same as PostgreSQL core||C, flex and bison.|
|Licensing||same as PostgreSQL core||BSD-like|
|Complete clustering solution||no||requires a GCS|
|PostgreSQL versions||CVS HEAD|
General Model: shared-nothing, eager (conflict-free), update everywhere (multi-master) database replication
Postgres-R is an extension to the relational database system Postgres, providing efficient, fast and consistent database replication for shared-nothing clusters. It is designed to be as transparent as possible to the client, stable and secure by default.
The primary use of Postgres-R is to build load-balancing and highly available database systems on commodity hardware. Furthermore, due to the flexible architecture of Postgres-R it is easily possible to extend or adjust the replication process to many different means. Compared to common single node database systems, a Postgres-R cluster is more reliable and scales better while being cheaper and more flexible.