Postgres-XL介紹


  Postgres-XL是一個可橫向擴展的開源數據庫集群,基於Postgres-XC,而Postgres-XC又是基於PostgreSql。PostgreSQL許可證是一種自由開源許可證,類似於BSD或MIT許可證。

Postgres-XL功能:

數據庫集群;

可橫向擴展;

提供多種表分片策略;

采用MPP架構模式(OLAP),可以與OLTP混合使用。

 

Postgres-XL特性:
可橫向擴展的關系型數據庫(RDBMS);

完成支持集群級別的ACID;

集群范圍的一致性(MVCC);

即支持OLAP應用(MPP架構模式),也支持OLTP應用(讀寫性能擴展);

多租戶安全;

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

 

但是也存在一些不足的地方:

內部沒有實現高可用機制,需要借助外部機制來實現高可用,如pg流復制、Corosync/Pacemaker等。

增刪節點/重新分片數據(re-shard)的比較復雜。

數據重分布(redistribution)期間會鎖表。

某些外鍵、唯一性約束功能欠缺

 

Postgres-XL架構圖

主要由GTM、GTM-Proxy、Coordinator、Datanode幾個部分組成。

全局事務管理器GTM

全集群只有一個GTM節點,為了防止該節點出現單點故障影響整個集群,需要配置備節點來保證高可用。

可以通過部署GTM Proxy,來解決GTM性能瓶頸問題。

GTM提供事務間一致性視圖。

它為Postgres-XL數據庫集群中的每個事務提供全局事務ID和快照。

它還提供一些全局值,如sequence和全局時間戳。

 

全局事務管理器代理GTM-Proxy

與協調器(Coordinator)和數據節點(DataNode)在一起運行;

后端(協調器、數據節點)用它替代GTM,直接與它交互,它做為后端與GTM間的中間人;

將對GTM的請求分組歸集,多個請求一次提交給GTM;

獲取transaction ids(XIDs)范圍;

獲取數據快照。

 

協調器Coordinator

Coordinator是Postgres-XL對外數據訪問的入口,可以配置多個。但是Postgres-XL並沒有提供負載均衡的機制,需要另外使用其他工具來實現。如上圖中的Load Balancer並不屬於Postgres-XL。

Coordinator節點維護着數據的存儲信息,但不存儲數據本身。接收到一條SQL語句后,Coordinator解析SQL,制定執行計划,然后分發任務到相關的Datanode上,Datanode返回執行結果到Coordinator,Coordinator整合各個Datanode返回的結果,最后返回給客戶端。

 

數據節點DataNode

實際存儲表和索引數據,數據自動打散分布(或者復制)到集群中各數據節點;

只有協調器連接到數據節點才能可讀寫,直接連接只能讀;

執行協調器下傳的查詢,一個查詢在所有相關節點上並行查詢;

兩個數據節點間可建立一對一通訊連接,交換分布式表關聯查詢的相關信息。

 

 

Postgres-XL數據分布

Postgres-XL數據分布有兩種模式: 復制表(Replicated Table)、分布表(Distributed Table)。

  • 復制表

表的數據在每一個DataNode上都是完整的。

當Coordinator與DataNode部署在一台機器上時,查詢時只需要本地讀取,減少網絡開銷。不適宜寫操作頻繁的表。

  • 分布表

表的數據存放在多個DataNode上,組成一張完整的表。可用的分片策略方式Hash、Round Robin、Modulo。

 

PostgreSQL、Postgres-XC、Postgres-XL之間的區別

 

Postgres-XL相對於PostgreSQL的優缺點

  Postgres-XL目前還存在很多限制,具體請查看官服說明

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM