集群数据库Postgres-XC
2015-03-02 10:40:56 阿炯

Postgres-XC is an open source project to provide a write-scalable, synchronous, symmetric, and transparent PostgreSQL cluster solution. It is a collection of tightly coupled database components which can be installed in more than one hardware or virtual machines.

Write-scalable means Postgres-XC can be configured with as many database servers as you want and handle many more writes (updating SQL statements) compared to what a single database server can not do.

PostgreSQL-XC 是一种提供写可靠性,多主节点数据同步,数据传输的开源集群方案,它包括很多组件,这些 PostgreSQL-XC 组件可以分别安装在多台物理机器或者虚拟机上。PostgreSQL-XC 最大的特性就是提供多主(multi-master ) 数据同步以及读写( read/write ) 的可靠性。具体地说, PostgreSQL-XC 提供以下特性:

1、PostgreSQL-XC 可以提供多个主节点同时处理来自应用端发出的 SQL 语句,这些节点称为 master节点,但在 PostgreSQL-XC 中称为 "coordinator"。
      
2、PostgreSQL-XC 可以提供多个  masters 节点。
    
3、任何一个 master 节点都有全局数据库视图,也就是说当任一台 master 接收 update 语句时,在另外的master 节点可以迅速地看到。
       
4、表可以以 replicated 或者 distributed 方式分布式存储,并且这对应用来说是透明的。
    
5、PostgreSQL-XC 可以提供统一全局的数据库视图。

Postgres-XC is a write-scalable synchronous multi-master PostgreSQL cluster with the following features.

1) Both read and write scalability.

2) Configured with more than one server.

3) Complete global transaction and visibility management.

Features

Read/Write Scalability

Symmetric (multi-master, synchronous) cluster

Transaction management and consistent tuple visibility

Parallel transaction execution among cluster nodes


写可靠性 (Write-scalable )是指可以部署多个数据库主节点,并且向这些主节点发出 update 语句,这种特性单个 PostgreSQL 库是无法提供的; 多主节点 (Multi-master ):是指有多个数据库可以提供统一完整的数据库视图;主节点数据同步(Synchronous):是指在一台数据库上更新操作会立刻呈现在另一台数据库中;数据传输(Transparent)是指;数据位于不同的数据库节点中,当查询数据时,不必关心数据位于具体的节点。

你可以将 PostgreSQL-XC 配置一台或者多台主机上, Postgresql-XC 数据以分布式存储,有两种方式,partitioned 或者 replicated ,当向 PostgreSQL-XC 发送查询 SQL时, PostgreSQL-XC 会自动向数据节点发出查询语句并获取数据。


Postgres-XC 关键组件
    
这里介绍下 PostgreSQL-XC 的组件,PostgreSQL-XC 包含三个主要组件,分别是
GTM (Global Transaction Manager), Coordinator and Datanode。

3.1、GTM (Global Transaction Manager)

GTM 是 PostgreSQL-XC 的核心组件,用于全局事务控制以及 tuple 的可见性控制。PostgreSQL 的事务控制是基于 MVCC 机制的, 在 PostgreSQL-XC 体系中将这种技术单独划分出来,
称之为 GTM。

3.2、Coordinator

协调呆节点 (Coordinator) 是数据节点 (Datanode)  与应用之间的接口,由于表数据会以分片或者复制的方式分布式存储,所以 Coordinator 节点并不物理上存储表数据,表数据位于数据节点上,数据节点接下来会介绍,当应用发起SQL时,会先到达 Coordinator 节点,然后 Coordinator 节点将 sql 分发到各个数据节点,汇总数据,这一系统过程是通过  GXID 和 Global Snapshot  来控制的。

3.3、Datanode

Datanode 即数据节点,物理存储表的数据,表数据存储方式包括分片 (distributed) 和 完全复制 (replicated) 的方式,数据节点只存储本地的数据。

3.4、PostgreSQL-XC 体系结构图


PostgreSQL-XC  体系结构图

备注:从上图看出,Coordinator 和 datanode 节点可以配置多个,并且可以分别位于不同主机上,官方建议 Coordinator 节点和 datanode 节点数相同。另外只有 Coordinator 节点直接对应用服务,数据节点对应用透明。

最新版本:


项目主页:http://postgresxc.wikia.com/