GreenPlumn數據庫體系結構

        GreenPlumn 數據庫是基於 PostgreSQL 基礎上開發,具有巨大的並行處理能力的數據倉庫,MPP( massively parallel processing )是 GreenPlumn的主要特性, MPP是指服務器上擁有兩個或者以上的處理節點,並且多個處理節點可以並行,協同的工作來完成一個計算, 這些處理節點擁有獨自的內存,操作系統和硬盤, 處理節點可以理解成爲一臺物理主機。GreenPlumn 會分發 TB 及以上的數據到所有的子節點,並且當在GreenPlumn上執行查詢時,所有的子節點能夠利用各自的資源來併發地執行這個查詢。

        GreenPlumn 實際上是由一組 PostgreSQL 數據庫組合而成的強大數據倉庫, GreenPlumn 基於PostgreSQL 8.2.14 開發, 並且在多數據情況下和 PostgreSQL 非常相似,以至於用戶可以像是在使用PostgreSQL 一樣來使用GreenPlumn。

2 GreenPlumn 體系結構
       GreenPlumn可以將數據按一定算法全部分發到所有 segment Host上,因而能夠處理大量的數據請求。GreenPlumn的系統結構實際上是多臺 PostgreSQL 數據庫服務器組成的矩陣,GreenPlumn分兩部分, Master 主機和 Segments 主機,master主機是GreenPlumn的入口,客戶端,終端用戶連接Master來執行 sql。當用戶在 Master 節點上執行查詢SQL時,MASTER會將 SQL,以及SQL PLAN分發到所有 segments 節點, segments 處理好後,將數據發回 Master 節點, 如下圖。

  



--2.1 GreenPlumn 的 Master 節點
        Master 節點是訪問 GreenPlumn的入口, 用於處理客戶端的連接,和 SQL命令請求,用戶可以使用psql,或者應用程序接口來連接 Master, 例如 JDBC,ODBC接口。

        Master 節點僅存儲 GreenPlumn的系統數據,而不存儲用戶數據,相反,用戶數據存在所有的Segments 節點上,Master 負責以下工作:處理客戶端的連接請求,處理客戶端發出的SQL命令,將SQL命令分發到所有Segments 節點,協調所有節點處理的結果數據,並將這些數據展現給終端用戶。    

--2.2 GreenPlumn 的 Segment 節點
   在GreenPlumn中, Segments存諸用戶的數據,並且負責處理Master 分發出的SQL請求任務,用戶定義的表和索引按一定算法分發到所有的 segments節點,每個節點含有獨立的一部分數據,用戶不需要直接和 segments 交互,相反,只需通過和 Master 節點交互。 一般地,建議一個CPU上跑一個活躍的 segments。

3 GreenPlumn的鏡像備份功能
--3.1 關於 Segments節點的鏡像
    搭建GreenPlumn時,爲了保證系統的高可用性,可以給每個 Segment 搭建 Mirror Segment, 當Primary Segment 不可用時, Mirror Segment可以fail over 接替工作。Mirror Segment(鏡像節點)通常和Primary Segment 分佈在不同的主機上。
--3.2 關於 Master 節點的鏡像
   搭建GreenPlumn時,也可以配置一個 Master 的鏡像,稱作 Master Standby,  Standby Master通過WAL日誌複製來同步數據,如果 Master 不可用,日誌複製進程則會中斷,並且 Standby Master可以接替工作,同時,最近一次複製過來的WAL日誌狀態會變化來標記最近一次事務提交的時刻。

   由於 Master 不存儲用戶數據,所以Master Standby 只需要同步 Master 系統表數據,這些數據不會非常頻繁地改變,當 Master 節點數據變化時,這些變化會自動地應用到 Master Standby節點上。從而使得 Master Standby 數據 始終和 Master 保持一致。



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章