可扩展的开源基于PostgreSQL数据库集群:Postgres-XL
Postgres的-XL是一个基于PostgreSQL数据库的横向扩展开源SQL数据库集群,具有足够的灵活性来处理不同的数据库工作负载:
-
OLTP 写频繁的业务
-
需要MPP并行性商业智能
-
操作数据存储
-
Key-value 存储
-
GIS的地理空间
-
混合业务工作环境
-
多租户服务提供商托管环境
Scalable
Postgres-XL (eXtensible Lattice) allows you to either partition tables across multiple nodes, or replicate them. Partitioning (or distributing) tables allows for write scalability across multiple nodes as well as massively parallel processing (MPP) for Big Data type of workloads.
Replicated tables are typically static data that does not change very often. Replicating them allows for read scalability.
Fully ACID
Postgres-XL is a fully ACID compliant, transactional database that not only provides you with a fully consistent view of your data at all times, it also uses cluster-wide Multi-Version Concurrency Control (MVCC). When you start a transaction or query in Postgres-XL, you’ll see a consistent version of your data across the entire cluster. While you are reading your data on one connection, you could be updating the same table or even row in another connection without any locking. Both connections are working with their own versions of the rows, thanks to global transaction identifiers and snapshots. Readers do not block writers and writers do not block readers.
Components
- Global Transaction Monitor (GTM)
The Global Transaction Monitor ensures cluster-wide transaction consistency. GTM is responsible for issuing transaction ids and snapshots as part of its Multi-version Concurrency Control.
The cluster may also optionally be configured with a GTM Standby, for improved availability.
In addition, one may configure a GTM Proxy at the Coordinators for improved scalability to reduce the amount of communication with GTM.
- Coordinator
The Coordinator manages the user sessions and interacts with GTM and the data nodes. The Coordinator parses and plans queries, and sends down a serialized global plan to each of the components involved in a statement.
- Data Node
The Data Node is where the actual data is stored. The distribution of the data can be configured by the DBA. For improved availability, one can configure warm standbys of the data nodes to be failover-ready.