linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与欢迎您!
网站首页 | 设为首页 | 加入收藏
您所在的位置:主页 > Linux数据库 >

基于Postgres-XL的MPP分布式方案

时间:2016-11-19  来源:未知  作者:admin

1简介

Postgres-XL全称为 Postgres eXtensible Lattice,是一个横向扩展的开源数据库集群,是TransLattice公司及其收购数据库技术公司StormDB的产品。

Postgres-XC更适合oltp型应用。

Postgres-XL基于Postgres-XC,更适合olap型应用。

1.1功能特性

license:Mozilla PublicLicense许可,允许将开源代码与闭源代码混在一起使用。

完全的ACID支持。

可横向扩展的关系型数据库(RDBMS)。

支持OLAP应用,采用MPP(Massively Parallel Processing大规模并行处理系统)架构模式。

支持OLTP应用,读写性能可扩展。

集群级别的ACID特性。

多租户安全。

支持分布式Key-Value存储、支持JSON和XML格式。

事务处理与数据分析处理混合型数据库。

支持丰富的SQL语句类型,如关联子查询。

支持绝大部分PostgreSQL的SQL语句。

分布式多版本并发控制(MVCC:Multi-version Concurrency Control)。

支持所有支持PostgresSQL类型的驱动JDBC, ODBC, OLE DB,Python,Ruby,perl DBI,Tcl。

1.2功能不足

需要使用外部机制实现高可用,如pg流复制、Corosync/Pacemaker等。

增删节点/重新分片数据(re-shard)的比较复杂。

数据重分布(redistribution)期间会锁表。

某些外键、唯一性约束功能欠缺。

2Postgres-XL架构

 

由GTM、GTM-Proxy、Coordinator、Datanode组成。

    GTM(Gloable Transaction Manager)负责提供事务的ACID属性;

    Datanode负责存储表的数据和本地执行由Coordinator派发的SQL任务;

    Coordinator负责处理每个来自Application的SQL任务,并且决定由哪个Datanode执行,然后将任务计划派发给相应的Datanode,根据需要收集结果返还给Application;

    GTM通常由一台独立的服务器承担,GTM需要处理来自所有GTM-Proxy或者Coordinator和Datanode的事务请求。

     每台机器最好同时配置一个Coordinator、一个Datanode与GTM-Proxy。

     每台机器同时配置一个Coordinator和一个Datanode,可以负载均衡,同时降低网络流量。GTM-Proxy会减少GTM的负载,将Coordinator和Datanode上进程的请求和响应聚集到一台机器上,同时会帮助处理GTM失效的情况。

     GTM可能会发生单点故障,可以配置一个GTM-Standby节点作为GTM的备用节点。

2.1协调器(Coordinator)

处理客户端连接。

分析查询语句,生成执行计划,并将计划传递给数据节点实际执行。

对数据节点返回的查询中间结果集执行最后处理。

管理事务两阶段提交(2PC)。

存储全局目录(GlobalCatalog)信息。

2.2数据节点(DataNode)

实际存储表和索引数据,数据自动打散分布(或者复制)到集群中各数据节点。

只有协调器连接到数据节点才能可读写。

执行协调器下传的查询,一个查询在所有相关节点上并行查询。

两个数据节点间可建立一对一通讯连接,交换分布式表关联查询的相关信息。

2.3全局事务管理器(GTM)

全局事务管理器(GTM:Global Transaction Manager)

全集群只有一个GTM节点,会有单点故障问题,可以配置StranBy热备节点保证高可用。

通过部署GTM Proxy,解决GTM性能瓶颈。

提供事务间一致性视图。

友情链接