Postgres-R
Project Overview
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.
Project Status
Prototype, not ready for production
Project Contacts
website: www.postgres-r.org
lead developer: Markus Wanner
mailing list: postgres-r-general on pgfoundry
General Information
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 |
Clustering Model
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.
Use Case
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.