可擴展的開源基于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.