摘要:所有節(jié)點(diǎn)中分為三種角色全局事務(wù)管理器協(xié)調(diào)器和數(shù)據(jù)節(jié)點(diǎn)。一旦故障,整個(gè)集群立刻無法訪問,此時(shí)可以切換到節(jié)點(diǎn)上。
第一節(jié) 簡介
Postgres-XL是一款開源的PG集群軟件,XL代表eXtensible Lattice,即可擴(kuò)展的PG“格子”之意,以下簡稱PGXL。官方稱其既適合寫操作壓力較大的OLTP應(yīng)用,又適合讀操作為主的大數(shù)據(jù)應(yīng)用。它的前身是Postgres-XC(簡稱PGXC),PGXC是在PG的基礎(chǔ)上加入了集群功能,主要適用于OLTP應(yīng)用;PGXL是在PGXC的基礎(chǔ)上的升級(jí)產(chǎn)品,加入了一些適用于OLAP應(yīng)用的特性,如 Massively Parallel Processing (MPP) 特性。通俗的說PGXL的代碼是包含PG代碼的,使用PGXL安裝PG集群并不需要多帶帶安裝PG。這樣帶來的一個(gè)問題是無法隨意選擇任意版本的PG,好在PGXL跟進(jìn)PG較及時(shí),目前最新版本Postgres-XL 9.5 R1.3,基于PG 9.5。
三者的關(guān)系大致如下圖(來源網(wǎng)絡(luò),出處不詳)
總體感覺PGXL這款工具還是相當(dāng)成熟的,有官方網(wǎng)站http://www.postgres-xl.org/,文檔也比較完善,也有商業(yè)公司2ndQuadrant在支持。下圖是PGXL和PG在OLAP方面的性能對比,來自2ndQuadrant官網(wǎng):
第二節(jié) 集群架構(gòu)
上面這張圖就是PGXL集群的架構(gòu)圖,來自官方網(wǎng)站。所有節(jié)點(diǎn)中分為三種角色:GTM(全局事務(wù)管理器)、Coordinator(協(xié)調(diào)器)和Datanode(數(shù)據(jù)節(jié)點(diǎn))。需要注意一點(diǎn)是圖中的Load Balance組件并不屬于PGXL集群本身,需要其他負(fù)載均衡工具實(shí)現(xiàn)。
GTM:
全局事務(wù)控制節(jié)點(diǎn),保證集群數(shù)據(jù)的一致性,與Coordinator節(jié)點(diǎn)和Datanode節(jié)點(diǎn)不斷通信,是整個(gè)集群的核心節(jié)點(diǎn),只存在一個(gè),可以存在一個(gè)GTM Standby節(jié)點(diǎn),對GTM實(shí)時(shí)備份。GTM一旦故障,整個(gè)集群立刻無法訪問,此時(shí)可以切換到GTM Standby節(jié)點(diǎn)上。如果部署了GTM Standby節(jié)點(diǎn),就應(yīng)該同時(shí)部署GTM Proxy,一般和Coordinator、Datanode部署在同一臺(tái)服務(wù)器上。GTM Proxy的作用代理Coordinator和Datanode對GTM的訪問,起到減輕GTM負(fù)載的作用,另外一個(gè)重要的作用是幫助完成GTM的故障切換,當(dāng)GTM節(jié)點(diǎn)發(fā)生故障后,GTM Standby成為新的GTM,此時(shí)Coordinator和Datanode節(jié)點(diǎn)并不需要重新指定GTM地址,只需要GTM Proxy重新連接到新的GTM地址即可。
Coordinator:
接收數(shù)據(jù)訪問請求的節(jié)點(diǎn),本質(zhì)上是由PG后臺(tái)進(jìn)程組成。接收的一條查詢后,Coordinator節(jié)點(diǎn)執(zhí)行查詢計(jì)劃,然后會(huì)根據(jù)查詢數(shù)據(jù)涉及的數(shù)據(jù)節(jié)點(diǎn)將查詢分發(fā)給相關(guān)的數(shù)據(jù)節(jié)點(diǎn)。寫入數(shù)據(jù)時(shí),也會(huì)根據(jù)不同的數(shù)據(jù)分布策略將數(shù)據(jù)寫入相關(guān)的節(jié)點(diǎn)??梢哉fCoordinator節(jié)點(diǎn)上保存著集群的全局?jǐn)?shù)據(jù)位置。Coordinator節(jié)點(diǎn)可以任意擴(kuò)展,各個(gè)節(jié)點(diǎn)之間除了訪問地址不同以外是完全對等的,通過一個(gè)節(jié)點(diǎn)更新的數(shù)據(jù)可以在另一個(gè)節(jié)點(diǎn)上立刻看到。每個(gè)Coordinator節(jié)點(diǎn)可以配置一個(gè)對應(yīng)的standby節(jié)點(diǎn),避免單點(diǎn)故障。
Datanode:
實(shí)際存取數(shù)據(jù)的節(jié)點(diǎn),接收Coordinator的請求并執(zhí)行SQL語句存取數(shù)據(jù),節(jié)點(diǎn)之間也會(huì)互相通信。一般的,一個(gè)節(jié)點(diǎn)上的數(shù)據(jù)并不是全局的,數(shù)據(jù)節(jié)點(diǎn)不直接對外提供數(shù)據(jù)訪問。一個(gè)表的數(shù)據(jù)在數(shù)據(jù)節(jié)點(diǎn)上的分布存在兩種模式:復(fù)制模式和分片模式,復(fù)制模式下,一個(gè)表的數(shù)據(jù)在指定的節(jié)點(diǎn)上存在多個(gè)副本;分片模式下,一個(gè)表的數(shù)據(jù)按照一定的規(guī)則分布在多個(gè)數(shù)據(jù)節(jié)點(diǎn)上,這些節(jié)點(diǎn)共同保存一份完整的數(shù)據(jù)。這兩種模式的選擇是在創(chuàng)建表的時(shí)候執(zhí)行CREATE TABLE語句指定的,具體語法如下:
CREATE TABLE table_name(...) DISTRIBUTE BY HASH(col)|MODULO(col)|ROUNDROBIN|REPLICATION TO NODE(nodename1,nodename2...)
可以看到,如果DISTRIBUTE BY 后面是REPLICATION,則是復(fù)制模式,其余則是分片模式,HASH指的是按照指定列的哈希值分布數(shù)據(jù),MODULO指的是按照指定列的取摩運(yùn)算分布數(shù)據(jù),ROUNDROBIN指的是按照輪詢的方式分布數(shù)據(jù)。TO NODE指定了數(shù)據(jù)分布的節(jié)點(diǎn)范圍,如果沒有指定則默認(rèn)所有數(shù)據(jù)節(jié)點(diǎn)參與數(shù)據(jù)分布。如果沒有指定分布模式,即使用普通的CREATE TABLE語句,PGXL會(huì)默認(rèn)采用分片模式將數(shù)據(jù)分布到所有數(shù)據(jù)節(jié)點(diǎn)。
這篇就先寫到這里,下一篇寫一下安裝與配置。
參考資料:
http://www.postgres-xl.org/
https://2ndquadrant.com/en/re...
http://www.slideshare.net/mas...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38957.html
摘要:接上篇初識(shí)寫一下簡稱的部署與測試。如果執(zhí)行報(bào)錯(cuò)則根據(jù)提示安裝相應(yīng)的庫即可,如等。默認(rèn)的安裝目錄是,和原生相同,很順手。 接上篇《初識(shí)Postgres-XL》https://segmentfault.com/a/11...寫一下Postgres-XL(簡稱PGXL)的部署與測試。 第一節(jié) 安裝安裝很簡單,源碼安裝,和PG的安裝基本相同,可能比PG多一個(gè)依賴庫。在所有節(jié)點(diǎn)上執(zhí)行相同操作。 ...
摘要:最近研究了的兩種集群方案,分別是和,在這里總結(jié)一下二者的機(jī)制結(jié)構(gòu)優(yōu)劣測試結(jié)果等。其中的前身的,的前身是。為了避免單點(diǎn)故障,可以為所有節(jié)點(diǎn)配置對應(yīng)的節(jié)點(diǎn)。測試測試結(jié)果測試結(jié)果顯示,兩種集群與單機(jī)的性能指標(biāo)幾乎一致,無法分辨高下。 最近研究了PG的兩種集群方案,分別是Pgpool-II和Postgres-XL,在這里總結(jié)一下二者的機(jī)制、結(jié)構(gòu)、優(yōu)劣、測試結(jié)果等。 1、 Pgpool-I...
摘要:這里只演示修改下運(yùn)行停掉的服務(wù)下運(yùn)行,編輯配置文件,修改連接地址以下為修改后的顯示結(jié)果,是的服務(wù),從可以看到下運(yùn)行 ????關(guān)于postgres-xl的實(shí)驗(yàn)是在我自己筆記本rhel7.2_x64的環(huán)境下,用kvm實(shí)現(xiàn)的,總共有6臺(tái)虛擬機(jī):????一臺(tái)openfiler2.99發(fā)布共享存儲(chǔ),一臺(tái)gtm master,一臺(tái)gtm slave,三臺(tái)gtm_proxy/coordinator/...
摘要:這可以通過負(fù)載平衡來實(shí)現(xiàn)數(shù)據(jù)分片當(dāng)問題不是并發(fā)查詢的數(shù)量,而是數(shù)據(jù)庫的大小和單個(gè)查詢的速度時(shí),可以實(shí)現(xiàn)不同的方法。 showImg(https://segmentfault.com/img/remote/1460000018875091); 來源 | 愿碼(ChainDesk.CN)內(nèi)容編輯 愿碼Slogan | 連接每個(gè)程序員的故事 網(wǎng)站 | http://chaindesk.cn...
閱讀 878·2021-10-13 09:39
閱讀 3531·2021-09-26 10:16
閱讀 2861·2019-08-30 15:54
閱讀 1037·2019-08-30 14:22
閱讀 2886·2019-08-29 15:39
閱讀 3253·2019-08-27 10:52
閱讀 809·2019-08-26 13:59
閱讀 1703·2019-08-26 12:20