转载:PostgreSQL-XC: Introduction

来源:互联网 发布:超级六耳猕猴秒出数据 编辑:程序博客网 时间:2024/05/01 16:56

转载:http://francs3.blog.163.com/blog/static/4057672720125315352442/

PostgreSQL-XC: Introduction  


   这几天在学习 PostgreSQL-XC,虽然目前 Postgres-XC 的文档还不完整,但学习一下还是有帮助的,
至少PostgreSQL-XC 是一种可以实现 multi-master 方案,这里简单介绍下 PostgreSQL-XC。


一 What Is Postgres-XC?

       PostgreSQL-XC 是一种提供写可靠性,多主节点数据同步,数据传输的开源集群方案,它包括很多
组件,稍后会详细介绍这些组件,这些 PostgreSQL-XC 组件可以分别安装在多台物理机器或者虚拟机上。

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

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

 

二 Postgres-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 Key Components
   
      这里介绍下 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: Introduction - francs - PostgreSQL DBA

                                  PostgreSQL-XC    体系结构图

     备注:从上图看出,Coordinator 和 datanode 节点可以配置多个,并且可以分别位于不同主机

上,官方建议 Coordinator 节点和 datanode 节点数相同。另外,只有 Coordinator 节点直接对

应用服务,数据节点对应用透明。


四 Postgres-XC Inherits PostgreSQL

    Postgres-XC is an extension to PostgreSQL and inherits most of its features.

    It is an open-source descendant of PostgreSQL and its original Berkeley code. It supports a
large part of the SQL standard and offers many modern features:

?complex queries
?foreign keys [3]
?triggers [4]
?views
?transactional integrity
?multiversion concurrency control

        Also, similar to PostgreSQL, Postgres-XC can be extended by the user in many ways, for example
 by adding new

?data types
?functions
?operators
?aggregate functions
?index methods
?procedural languages

     And because of the liberal license same as PostgreSQL, Postgres-XC can be used, modified, and distributed
by anyone free of charge for any purpose, be it private, commercial, or academic.


五 参考
http://postgres-xc.sourceforge.net/docs/1_0/intro-whatis.html
http://postgres-xc.sourceforge.net/


原创粉丝点击