51.1. Postgres-XL Components

As described in Section 1, Postgres-XL is a database cluster which consists of multiple database servers based upon PostgreSQL. Postgres-XL provides global transparent transaction management to all the database servers involved and provide both read and write scalability.

To achieve these features, Postgres-XL is composed of three major components as follows:

GTM

GTM stands for Global Transaction Manager. It provides global transaction IDs and snapshots for each transaction in the Postgres-XL database cluster. It also provide several global values such as sequences and global timestamps.

To improve scalability itself, each server hardware or virtual machine may have GTM-Proxy. GTM-Proxy groups commands and response from/to GTM to reduce number of interaction and the amount of data which GTM reads and writes.

Coordinator

Coordinator is an entry point for Postgres-XL from applications. You can configure more than one Coordinators in the same Postgres-XL. With the help of GTM, they provide transparent concurrency and integrity of transactions globally. Applications can choose any Coordinator to connect to. Any Coordinator provides the same view of the database.

Datanode

Datanode stores user data. As described in Section 2.1 and CREATE TABLE, more than one Datanodes can be configured. Each table can be replicated or distributed among Datanodes. A table is distributed, you can choose a column as the distribute key, whose value is used to determine which Datanode each row should be stored.