概述
postgresql-xl类似于greenplum,都是MPP数据库,postgresql-xl一直都是开源的,但开源社区活跃度不是很高,gp在前两年也开源了,两者各有优缺点,在性能上有些方面不相上下,但gp要相对稳定一些。据称都支持海量数据,但这两种数据在实际使用过程中的数据量,都有一定的上限。本文介绍postgresql-xl的基本概念,在几年前对该数据库进行过调研,这里做个整理,分享出来,共大家参考。
基本特性
Postgres的-XL是一个基于PostgreSQL数据库的可以横向扩展的开源SQL数据库集群,具有足够的灵活性来处理不同的数据库工作负载:
- OLTP 写频繁的业务
- 需要MPP并行处理的商业智能
- 操作数据存储
- Key-value 存储
- GIS的地理空间
- 混合业务工作环境
- 多租户服务提供商托管环境
可扩展性
Postgres-XL(eXtensible Lattice),可以跨多个节点或者分区表,或复制它们。分区(或分布)表允许跨多个节点的写入可扩展性,以及大规模并行处理(MPP)大数据类型的工作负荷。
复制的表是典型的不经常改变的静态数据。复制数据,允许读可扩展性。
完全ACID(Atomicity, Consistency, Isolation, Durability)
Postgres-XL是一款完全符合ACID的事务型数据库。不仅为您提供任何时候都完全一致的视图,而且使用了集群范围的多版本并发控制(MVCC)。
当你在Postgres-XL开始一个交易或查询时,你会看到整个集群范围内一致的数据。当你一个连接里读取你的数据时,甚至在没有任何锁定另一个连接里,
你可以更新相同的表。归功于全球事务标识符和快照,这些连接正在使用他们自己的版本的行。读取器和写入器互相不阻塞对方。
组成
Global Transaction Monitor (GTM)
全局交易监测,确保群集范围内的事务一致性。 GTM负责发放事务ID和快照作为其多版本并发控制的一部分。
集群可选地配置一个备用GTM,以改进可用性。此外,可以在协调器间配置代理GTM, 可用于改善可扩展性,减少GTM的通信量。
Coordinator
协调员管理用户会话,并与GTM和数据节点进行交互。协调员解析,并计划查询,并给语句中的每一个组件发送下一个序列化的全局性计划
Data Node
数据节点是数据实际存储的地方。数据的分布可以由DBA来配置。为了提高可用性,可以配置数据节点的热备以便进行故障转移准备。
参考文献:
http://www.postgres-xl.org/overview/
http://www.slideshare.net/mason_s/postgres-xl-scaling