https://wiki.postgresql.org/api.php?action=feedcontributions&user=Dddh&feedformat=atomPostgreSQL wiki - User contributions [en]2024-03-29T00:34:27ZUser contributionsMediaWiki 1.35.13https://wiki.postgresql.org/index.php?title=Postgres-XC&diff=23719Postgres-XC2014-11-12T15:41:47Z<p>Dddh: /* General Information */</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.2.1 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[https://sourceforge.net/projects/postgres-xc/files/Version_1.2/ Version 1.2.1] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.2/ v1.2.1].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, python, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.3-based || Planning to move to 9.4 once 9.4 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Postgres-XC&diff=23718Postgres-XC2014-11-12T15:38:25Z<p>Dddh: /* Status */</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.2.1 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[https://sourceforge.net/projects/postgres-xc/files/Version_1.2/ Version 1.2.1] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.2/ v1.2.1].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.3-based || Planning to move to 9.4 once 9.4 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=SQL_MERGE&diff=22425SQL MERGE2014-05-22T04:14:09Z<p>Dddh: /* Status */</p>
<hr />
<div>=== Status ===<br />
'''Note:''' MERGE is often discussed along with the related feature Upsert.<br />
<br><br />
'''In the latest PostgreSQL release 9.3.4 (as of 3/21/14), MERGE is not implemented.'''<br />
<br><br />
Reference: [http://postgresql.uservoice.com/forums/21853-general Merge #1 on most requested features list, with 565 votes as of 5/22/14]<br />
<br><br />
Reference: [http://postgresql.uservoice.com/forums/21853-general/suggestions/245202-merge-upsert-replace Merge requested feature detail.]<br />
<br><br />
Reference: [http://www.postgresql.org/docs/9.3/static/unsupported-features-sql-standard.html SQL 2011 unsupported features, see feature F312]<br />
<br>'''Postgres 9.4 release is targeted for 3Q 2014''' ([http://www.postgresql.org/developer/roadmap/ Roadmap as of 3/21/14]), and it seems this release will also '''not contain the MERGE or Upsert features''', according to 2014 blog posts (Craig Kerstiens and Armin Ronacher) linked below.<br />
<br />
=== Description ===<br />
MERGE is typically used to merge two tables, and was introduced in the [http://en.wikipedia.org/wiki/Merge_(SQL) 2003 SQL standard]. The REPLACE statement (a MySQL extension) or [http://en.wikipedia.org/wiki/Upsert UPSERT] sequence attempts an UPDATE, or on failure, INSERT. This is similar to UPDATE, then for unmatched rows, INSERT. Whether concurrent access allows modifications which could cause row loss is implementation independent. <br />
<br />
To implement this cleanly requires that the table have a unique index so duplicate checking can be easily performed. It is possible to do it without a unique index if we require the user to LOCK the table before the MERGE.<br />
<br />
=== History ===<br />
Discussion of MERGE progress in PostgreSQL:<br />
<br />
* 2005-11-11 - [http://archives.postgresql.org/pgsql-hackers/2005-11/msg00501.php Someone working to add merge?], by Jaime Casanova<br />
* 2005-11-11 - [http://archives.postgresql.org/pgsql-hackers/2005-11/msg00536.php MERGE vs REPLACE], by Peter Eisentraut<br />
* 2008-04-16 - [http://archives.postgresql.org/pgsql-hackers/2008-04/msg01157.php MERGE SQL Statement], by Simon Riggs<br />
* 2008-04-21 - [http://archives.postgresql.org/pgsql-hackers/2008-04/msg01475.php MERGE Specification], by Simon Riggs<br />
* 2008-04-30 - [http://archives.postgresql.org/pgsql-hackers/2008-04/msg01890.php Internal design of MERGE, with Rules], by Simon Riggs<br />
* 2010-05-12 - [http://petereisentraut.blogspot.com/2010/05/merge-syntax.html MERGE Syntax], by Peter Eisentraut<br />
* 2010-05-13 - [[Add MERGE command GSoC 2010]], by Bxzhai<br />
** 2010-08-02 - [[MergeImplementationDetails]], by Bxzhai<br />
** 2010-08-06 - [[MergeTestExamples]], by Bxzhai<br />
* 2011-01-18 - [http://www.postgresql.org/message-id/4D35DA1E.4050506@2ndquadrant.com Discussion of Merge patch challenges], by Greg Smith<br />
* 2012-10-16 - [http://www.depesz.com/2012/06/10/why-is-upsert-so-complicated/ Why is Upsert so complicated?], By depesz Hubert Lubaczewski<br />
* 2013-05-22 - [http://wiki.postgresql.org/wiki/PgCon_2013_Developer_Meeting#Goals.2C_priorities.2C_and_resources_for_9.4 PgCon 2013 - plans for Postgres 9.4], by Dave Page<br />
* 2014-02-15 - [http://www.craigkerstiens.com/2014/02/15/PostgreSQL-9.4-What-I-Wanted/ PostgreSQL 9.4 - What I Was Hoping For], by Craig Kerstiens<br />
* 2014-02-16 - [http://lucumr.pocoo.org/2014/2/16/a-case-for-upserts/ A case for Upserts], by Armin Ronacher<br />
* 2014-05-22 - [http://www.pgcon.org/2014/schedule/events/661.en.html PgCon 2014 Talk - Why Upsert is Weird: Track 9.4 Features], by Peter Geoghegan<br />
<br />
== Likely Implementation Order ==<br />
'''Note: This section is from 2010 and may not reflect current progress.'''<br />
<br />
Due to the way this feature needs to be implemented internally, the following is the likely sequence in which this feature will be built:<br />
<br />
# PostgreSQL doesn't have a good way to lock access to a key value that doesn't exist yet--what other databases call key range locking ([http://msdn.microsoft.com/en-us/library/ms191272.aspx SQL Server] for example). Improvements to the index implementation are needed to allow this feature.<br />
# Add a subset of MERGE support sufficient to implement REPLACE/UPSERT. The full MERGE feature set is a bit broader than this.<br />
# Document how to use the new MERGE feature in lieu of REPLACE/UPSERT, to make transitions easier for users of other databases. Actually adding other vendor's non-standard syntax to make other apps work transparently is unlikely to be accepted as a patch.<br />
# Complete implementing the entirety of the feature set for SQL MERGE.<br />
<br />
[[Category:SQL Keyword]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Postgres-XC&diff=22054Postgres-XC2014-04-03T12:15:55Z<p>Dddh: /* Project Status */</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.2.1 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[http://sourceforge.net/projects/postgres-xc/files/latest/download Version 1.2.1] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.2/ v1.2.1].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.3-based || Planning to move to 9.4 once 9.4 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Postgres-XC&diff=22053Postgres-XC2014-04-03T12:15:08Z<p>Dddh: /* General Information */</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.1 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[http://sourceforge.net/projects/postgres-xc/files/latest/download Version 1.2.1] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.2/ v1.2.1].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.3-based || Planning to move to 9.4 once 9.4 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Postgres-XC&diff=22052Postgres-XC2014-04-03T12:12:45Z<p>Dddh: /* Status Detail */</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.1 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[http://sourceforge.net/projects/postgres-xc/files/latest/download Version 1.2.1] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.2/ v1.2.1].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.1-based || Planning to move to 9.2 once 9.2 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Postgres-XC&diff=22051Postgres-XC2014-04-03T12:11:52Z<p>Dddh: /* Status */</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.1 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[http://sourceforge.net/projects/postgres-xc/files/latest/download Version 1.2.1] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.1/ v1.1].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.1-based || Planning to move to 9.2 once 9.2 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Postgres-XC&diff=20715Postgres-XC2013-09-07T17:23:11Z<p>Dddh: /* Status Detail */</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.1 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[http://sourceforge.net/projects/postgres-xc/files/latest/download Version 1.1] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.1/ v1.1].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.1-based || Planning to move to 9.2 once 9.2 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Postgres-XC&diff=20714Postgres-XC2013-09-07T17:21:58Z<p>Dddh: /* Status */</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.1 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[http://sourceforge.net/projects/postgres-xc/files/latest/download Version 1.1] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.0/ v1.0.3].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.1-based || Planning to move to 9.2 once 9.2 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Postgres-XC&diff=20713Postgres-XC2013-09-07T17:21:35Z<p>Dddh: /* Project Status */</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.1 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[http://sourceforge.net/projects/postgres-xc/files/latest/download Version 1.0.3] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.0/ v1.0.3].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.1-based || Planning to move to 9.2 once 9.2 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Lock_Monitoring&diff=20712Lock Monitoring2013-09-07T17:19:41Z<p>Dddh: /* Here's an alternate view of that same data that includes an idea how old the state is */</p>
<hr />
<div>= Online view current locks =<br />
== pg_locks view ==<br />
Looking at [http://www.postgresql.org/docs/current/static/view-pg-locks.html pg_locks] shows you what locks are granted and what processes are waiting for locks to be acquired. A good query to start looking for lock problems:<br />
<source lang="SQL"><br />
select relation::regclass, * from pg_locks where not granted;<br />
</source><br />
<br />
== pg_stat_activity view ==<br />
* Figuring out what the processes holding or waiting for locks is easier if you cross-reference against the information in [http://www.postgresql.org/docs/current/static/monitoring-stats.html pg_stat_activity]<br />
<br />
== Сombination of blocked and blocking activity ==<br />
The following query may be helpful to see what processes are blocking SQL statements (these only find row-level locks, not object-level locks).<br />
<br />
For PostgreSQL Version < 9.2:<br />
<source lang="SQL"><br />
select bl.pid as blocked_pid,<br />
a.usename as blocked_user,<br />
kl.pid as blocking_pid,<br />
ka.usename as blocking_user,<br />
a.current_query as blocked_statement<br />
from pg_catalog.pg_locks bl<br />
join pg_catalog.pg_stat_activity a on a.procpid = bl.pid<br />
join pg_catalog.pg_locks kl on kl.transactionid = bl.transactionid and kl.pid != bl.pid<br />
join pg_catalog.pg_stat_activity ka on ka.procpid = kl.pid<br />
where not bl.granted;<br />
</source><br />
<br />
For PostgreSQL Version >= 9.2:<br />
<source lang="SQL"><br />
select bl.pid as blocked_pid,<br />
a.usename as blocked_user,<br />
kl.pid as blocking_pid,<br />
ka.usename as blocking_user,<br />
a.query as blocked_statement<br />
from pg_catalog.pg_locks bl<br />
join pg_catalog.pg_stat_activity a on a.pid = bl.pid<br />
join pg_catalog.pg_locks kl on kl.transactionid = bl.transactionid and kl.pid != bl.pid<br />
join pg_catalog.pg_stat_activity ka on ka.pid = kl.pid<br />
where not bl.granted;<br />
</source><br />
<br />
=== Here's an alternate view of that same data that includes an idea how old the state is ===<br />
<br />
<source lang="SQL"><br />
select a.datname,<br />
c.relname,<br />
l.transactionid,<br />
l.mode,<br />
l.granted,<br />
a.usename,<br />
a.current_query, <br />
a.query_start,<br />
age(now(), a.query_start) as "age", <br />
a.procpid <br />
from pg_stat_activity a<br />
join pg_locks l on l.pid = a.procpid<br />
join pg_class c on c.oid = l.relation<br />
order by a.query_start;<br />
</source><br />
<br />
=== Here's almost quite the same thing but with some more details ===<br />
<br />
For PostgreSQL Version < 9.2:<br />
<br />
<source lang="SQL"><br />
select bl.pid as blocked_pid,<br />
a.usename as blocked_user,<br />
ka.current_query as blocking_statement,<br />
now() - ka.query_start as blocking_duration,<br />
kl.pid as blocking_pid,<br />
ka.usename as blocking_user,<br />
a.current_query as blocked_statement,<br />
now() - a.query_start as blocked_duration<br />
from pg_catalog.pg_locks bl<br />
join pg_catalog.pg_stat_activity a on a.procpid = bl.pid<br />
join pg_catalog.pg_locks kl on kl.transactionid = bl.transactionid and kl.pid != bl.pid<br />
join pg_catalog.pg_stat_activity ka on ka.procpid = kl.pid<br />
where not bl.granted;<br />
</source><br />
<br />
For PostgreSQL >= 9.2:<br />
<br />
<source lang="SQL"><br />
select bl.pid as blocked_pid,<br />
a.usename as blocked_user,<br />
ka.query as blocking_statement,<br />
now() - ka.query_start as blocking_duration,<br />
kl.pid as blocking_pid,<br />
ka.usename as blocking_user,<br />
a.query as blocked_statement,<br />
now() - a.query_start as blocked_duration<br />
from pg_catalog.pg_locks bl<br />
join pg_catalog.pg_stat_activity a on a.pid = bl.pid<br />
join pg_catalog.pg_locks kl on kl.transactionid = bl.transactionid and kl.pid != bl.pid<br />
join pg_catalog.pg_stat_activity ka on ka.pid = kl.pid<br />
where not bl.granted;<br />
</source><br />
<br />
= Logging for later analysis =<br />
<br />
* If you suspect intermittent locks are causing problems only sometimes, but are having trouble catching them in one of these live views, setting the [http://www.postgresql.org/docs/current/static/runtime-config-logging.html#GUC-LOG-LOCK-WAITS log_lock_waits] and related [http://www.postgresql.org/docs/current/static/runtime-config-locks.html#GUC-DEADLOCK-TIMEOUT deadlock_timeout] parameters can be helpful. Then slow lock acquisition will appear in the database logs for later analysis.<br />
<br />
= See also =<br />
* [[Lock dependency information]]<br />
<br />
[[Category:Administration]]<br />
[[Category:Performance]]<br />
[[Category:Monitoring]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Postgres-XC&diff=19410Postgres-XC2013-04-24T15:25:45Z<p>Dddh: Updated last version to 1.0.3</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.0.3 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[http://sourceforge.net/projects/postgres-xc/files/latest/download Version 1.0.3] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.0/ v1.0.3].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.1-based || Planning to move to 9.2 once 9.2 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddhhttps://wiki.postgresql.org/index.php?title=Postgres-XC&diff=19352Postgres-XC2013-04-08T11:50:16Z<p>Dddh: Updated last version to 1.0.2.</p>
<hr />
<div>== Now Moved ==<br />
<br />
Postgres-XC Wiki page is now at [http://postgresxc.wikia.com/wiki/Postgres-XC_Wiki new location]. Please visit there for the latest information.<br />
<br />
== Project Overview ==<br />
Postgres-XC (eXtensible Cluster) is a multi-master write-scalable PostgreSQL cluster based on shared-nothing architecture, developed by [https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]. Introductory information can be found [https://sourceforge.net/projects/postgres-xc/files/Presentation/20120516_PGConTutorial/ here (pdf&odp)].<br />
<br />
Features of PG-XC include:<br />
<br />
# Write‐scalable PostgreSQL cluster<br />
#* More than 3× scalability performance speedup with five servers, compared with pure PostgreSQL (DBT‐1). Result as of 1.0 release. Ways to improve more scalability are known.<br />
# Synchronous multi‐master configuration<br />
#* Any update to any master is visible from other masters immediately.<br />
# Table location transparent<br />
#* Can continue to use the same applications.<br />
#* No change in transaction handling.<br />
# Based upon PostgreSQL<br />
# Same API to Apps as PostgreSQL<br />
<br />
== Project Status ==<br />
Now under development.<br />
<br />
* [https://sourceforge.net/projects/postgres-xc/ Version 1.0.2 is available.<br />
<br />
* Project license same as PostgreSQL, meaining PostgreSQL license (like BSD).<br />
<br />
* Gave numerous talks in Europe ([http://2010.pgday.eu/start PGDay.eu 2010], PGSession #3), Asia (PGChina 2012, [http://www.postgresql.jp/wg/shikumi/shikumi_19_folder/shikumi_19/ JPUG conference 2010] and [http://www.postgresql.jp/events/pgcon2012 JPUG conference 2012]), America (PGBr 2011, PGOpen 2011, PGCon 2010 and 2012)<br />
<br />
== Project Property ==<br />
<br />
This is Postgres-XC property according to the guideline as suggested<br />
[[Template:ClusteringProject|here]].<br />
<br />
=== Overview ===<br />
<br />
Please take a look at the top of this page.<br />
<br />
=== Status ===<br />
<br />
[http://sourceforge.net/projects/postgres-xc/files/latest/download Version 1.0.2] released.<br />
<br />
=== Status Detail ===<br />
<br />
Infrastructure for the scalability and transaction management has already been done.<br />
Now the team is working to extend the coverage of statements, as well as HA feature.<br />
Latest version is [http://sourceforge.net/projects/postgres-xc/files/Version_1.0/ v1.0.2].<br />
<br />
Details of the roadmap can be found in the [http://postgres-xc.sourceforge.net/ project home page].<br />
<br />
=== Contacts ===<br />
<br />
Core developers: Koichi Suzuki, [http://michael.otacoo.com/ Michael Paquier], Amit Khandekar, Ashutosh Bapat, Abbas Butt<br />
<br />
Preferred method of contact: postgres-xc-general at lists.sourceforge.net or postgres-xc-developers at lists.sourceforge.net.<br />
<br />
=== URL ===<br />
<br />
We have [https://sourceforge.net/projects/postgres-xc/ Development Page] and<br />
[https://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Main_Page Project Home].<br />
<br />
PGCon2011 Cluster Summit page is [[PgCon2011CanadaClusterSummit|here]]<br />
<br />
PGCon2011 Developer Meeting page is [[PgCon_2011_Developer_Meeting|here]]<br />
<br />
=== General Information ===<br />
<br />
{| border="1" cellpadding="1" cellspacing="0" style="width: 100%; border-collapse: collapse; border: 1px solid #ccc; font-size: 90%;"<br />
|-<br />
| style="background: #eee" |'''Scalability''' || Evaluated with ten servers. Potentially twenty to thirty servers.<br />
|-<br />
| style="background: #eee" |'''Read scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Write scaling''' || Yes<br />
|-<br />
| style="background: #eee" |'''Triggers/procedures''' || Procedure: Yes || Trigger not yet<br />
|-<br />
| style="background: #eee" |'''Parallel query''' || Now some of the queries can be executed in parallel in multiple data nodes. || <br />
|-<br />
| style="background: #eee" |'''Failover/High Availability''' || Yes || Core features are available. External tools can be used for failover<br />
|-<br />
| style="background: #eee" |'''Online provisioning''' || No || <br />
|-<br />
| style="background: #eee" |'''PostgreSQL upgrades''' || No || All the nodes should be upgraded at the same time.<br />
|-<br />
| style="background: #eee" |'''Detached node/WAN''' || No || Postgres-XC depends upon high speed communication.<br />
|-<br />
| style="background: #eee" |'''PostgreSQL core modifications required''' || Yes || <br />
|-<br />
| style="background: #eee" |'''Programming languages''' || C, flex, bison, bash, perl (same as Postgres) || <br />
|-<br />
| style="background: #eee" |'''Licensing''' || BSD, PostgreSQL license || <br />
|-<br />
| style="background: #eee" |'''Complete clustering solution''' || Yes || High-availability feature is already available, will be strengthened with next releases<br />
|-<br />
| style="background: #eee" |'''PostgreSQL versions''' || 9.1-based || Planning to move to 9.2 once 9.2 stable branch is out<br />
|}<br />
<br />
=== Model Summary ===<br />
<br />
Synchronous multi-master.<br />
<br />
=== Model description ===<br />
<br />
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.<br />
<br />
Each table can be partitioned or replicated, as specified in CREATE TABLE statement. Distribution can be also done on a portion of nodes if wanted.<br />
<br />
=== Use-case ===<br />
<br />
Transactional use case.<br />
<br />
* Large scale transactional application,<br />
<br />
* Integration of multiple database applications.<br />
<br />
* Dynamic load balancing in cloud environment, assigning computing resource dynamically depending upon prospect load.<br />
<br />
=== Drawbacks ===<br />
<br />
General PostgreSQL clauses are supported. There are more challenges related to clustering though:<br />
<br />
* Tuple relocation. When the value of distribution column is updated, we have to relocate the tuple to appropriate one.<br />
* 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.<br />
* Global constraint. Can we enforce unique or other constraint exclusion globally in multiple data nodes?<br />
<br />
=== Support ===<br />
<br />
[http://sourceforge.net/apps/mediawiki/postgres-xc/index.php?title=Charter Postgres-XC Development Group]<br />
<br />
<br />
[[Category:Replication]]<br />
[[Category:Clustering]]</div>Dddh