Postgres-XC implementation covers several topics of database cluster, as follows:
- Consistent transaction management and visibility maintenance throughout a cluster, as well as providing consistent global value such as sequence and timestamp (GTM, GTM-Proxy, GTM-Standby).
- Statement handling where multiple database nodes are involved, including
- Table partitioning/replication among multiple databases.
- Proxy statements to a remote node,
- Decompose a statement to those for individual database node including join and other predicate pushdown and column projection.
- Cross-node statement handling including cross-node join.
- Aggregate over multiple database nodes (statement decompose and result finalize).
- Synchronized PITR among multiple nodes, synchronizing any 2PC status over the cluster.
- HA-feature for monitoring components including GTM-Standby, cluster status monitoring and maitenance.
Some of them has deep correspondence to PostgreSQL itself.
Contribute to PostgreSQL
Among the above, we may be able to contribute Postgres-XC code to PostgreSQL as follows:
- Visibility maintenance throught a cluster. This may help to maintain visibility in a group of Hot Standby nodes.
- Statement proxying including join pushdown and column projection. This will improve SQL/MED performance.
- Cross-node statement handling including aggregate. This will help to implement database federation feature in PostgreSQL.