GreenPlumn数据库体系结构

        GreenPlumn 数据库是基于 PostgreSQL 基础上开发,具有巨大的并行处理能力的数据仓库,MPP( massively parallel processing )是 GreenPlumn的主要特性, MPP是指服务器上拥有两个或者以上的处理节点,并且多个处理节点可以并行,协同的工作来完成一个计算, 这些处理节点拥有独自的内存,操作系统和硬盘, 处理节点可以理解成为一台物理主机。GreenPlumn 会分发 TB 及以上的数据到所有的子节点,并且当在GreenPlumn上执行查询时,所有的子节点能够利用各自的资源来并发地执行这个查询。

        GreenPlumn 实际上是由一组 PostgreSQL 数据库组合而成的强大数据仓库, GreenPlumn 基于PostgreSQL 8.2.14 开发, 并且在多数据情况下和 PostgreSQL 非常相似,以至于用户可以像是在使用PostgreSQL 一样来使用GreenPlumn。

2 GreenPlumn 体系结构
       GreenPlumn可以将数据按一定算法全部分发到所有 segment Host上,因而能够处理大量的数据请求。GreenPlumn的系统结构实际上是多台 PostgreSQL 数据库服务器组成的矩阵,GreenPlumn分两部分, Master 主机和 Segments 主机,master主机是GreenPlumn的入口,客户端,终端用户连接Master来执行 sql。当用户在 Master 节点上执行查询SQL时,MASTER会将 SQL,以及SQL PLAN分发到所有 segments 节点, segments 处理好后,将数据发回 Master 节点, 如下图。

  



--2.1 GreenPlumn 的 Master 节点
        Master 节点是访问 GreenPlumn的入口, 用于处理客户端的连接,和 SQL命令请求,用户可以使用psql,或者应用程序接口来连接 Master, 例如 JDBC,ODBC接口。

        Master 节点仅存储 GreenPlumn的系统数据,而不存储用户数据,相反,用户数据存在所有的Segments 节点上,Master 负责以下工作:处理客户端的连接请求,处理客户端发出的SQL命令,将SQL命令分发到所有Segments 节点,协调所有节点处理的结果数据,并将这些数据展现给终端用户。    

--2.2 GreenPlumn 的 Segment 节点
   在GreenPlumn中, Segments存诸用户的数据,并且负责处理Master 分发出的SQL请求任务,用户定义的表和索引按一定算法分发到所有的 segments节点,每个节点含有独立的一部分数据,用户不需要直接和 segments 交互,相反,只需通过和 Master 节点交互。 一般地,建议一个CPU上跑一个活跃的 segments。

3 GreenPlumn的镜像备份功能
--3.1 关于 Segments节点的镜像
    搭建GreenPlumn时,为了保证系统的高可用性,可以给每个 Segment 搭建 Mirror Segment, 当Primary Segment 不可用时, Mirror Segment可以fail over 接替工作。Mirror Segment(镜像节点)通常和Primary Segment 分布在不同的主机上。
--3.2 关于 Master 节点的镜像
   搭建GreenPlumn时,也可以配置一个 Master 的镜像,称作 Master Standby,  Standby Master通过WAL日志复制来同步数据,如果 Master 不可用,日志复制进程则会中断,并且 Standby Master可以接替工作,同时,最近一次复制过来的WAL日志状态会变化来标记最近一次事务提交的时刻。

   由于 Master 不存储用户数据,所以Master Standby 只需要同步 Master 系统表数据,这些数据不会非常频繁地改变,当 Master 节点数据变化时,这些变化会自动地应用到 Master Standby节点上。从而使得 Master Standby 数据 始终和 Master 保持一致。



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章