Postgres-XC

From PostgreSQL wiki

Jump to: navigation, search

Contents

Project Overview

Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by NTT and EnterpriseDB. Introductory information is found here (PDF). Architecture description is found here (PDF).

Features of PG-XC include:

  1. Write‐scalable PostgreSQL cluster
    • More than 3.4× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1)
  2. Synchronous multi‐master configuration
    • Any update to any master is visible from other masters immediately.
  3. Table location transparent
    • Can continue to use the same applications.
    • No change in transaction handling.
  4. Based upon PostgreSQL
  5. Same API to Apps as PostgreSQL

Postgres-XC was formerly known as Postgres-2, but the name was changed due to concerns over it not being unique.

Project Status

Now under development.

  • License changed from LGPL to BSD.
  • Another talk in the JPUG seminar (in Japanese).

Project Property

This is Postgres-XC property according to the guideline as suggested here.

Overview

Please take a look at the top of this page.

Status

Version 0.9.4 released.

Status Detail

Infrastructure for the scalability and transaction management has already been done. Now the team is working to extend the coverage of statements, as well as HA feature. Latest version is V0.9.4. Version 1.0 release is planned at the end of March, 2012.

Details of the roadmap can be found in the project home page.

Contacts

Developer: Koichi Suzuki, Mason Sharp, Pavan Deolasee, Andrei Martsinchyk, Michael Paquier and Takayuki Suto.

Preferred method of contact: write to pgsql-cluster-hackers at postgresql.org, postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.

URL

We have Development Page and Project Home.

PGCon2011 Cluster Summit page is here

PGCon2011 Developer Meeting page is here

General Information

Scalability Evaluated with ten servers. Potentially twenty to thirty servers.
Read scaling Yes
Write scaling Yes
Triggers/procedures Procedure: Yes Trigger will be supported by the end of September, 2011.
Parallel query Now some of the queries can be executed in parallel in multiple data nodes.
Failover/High Availability No Will be available by the end of June, 2011
Online provisioning No
PostgreSQL upgrades No All the node should be upgraded at the same time.
Detached node/WAN No Postgres-XC depends upon high speed communication.
PostgreSQL core modifications required Yes
Programming languages C, flex, bison, bash and ruby (just for utilities)
Licensing BSD
Complete clustering solution Targetted High-availability feature will be added.
PostgreSQL versions 9.0.3 Planning to move to 9.1

Model Summary

Synchronous multi-master.

Model description

Extracting transaction management into single server to provide transaction ID and snapshot, as well as other global values. Thus Postgres-XC provides consistent database view to any transactions running on any master.

Each table can be partitioned or replicated, as specified in CREATE TABLE statement.

Use-case

Transactional use case.

  • Large scale transactional application,
  • Integration of multiple database applications.
  • Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.

Drawbacks

Although some statement cannot be handled (e.g., WITH clause), the gap to full PostgreSQL statement is becomming narrower as new releases are made available. We need some research work for solutions on following issues.

  • Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.
  • Global Deadlock detection. As discussed in cluster-hackers mailing list, there's no experience how long it will take to detect it and if it is reasonable compared with simple timeout mechanism.
  • Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?
  • WITH clause

Support

NTT (page is in Japanese) and EnterpriseDB are supporting the project.

Other Information

The project is now actively enhancing the feature. Please visit Project Home Page for details of our roadmap.

Personal tools