Postgresql由于強(qiáng)大的功能和良好的擴(kuò)展性,基于postgresql來做的分布式架構(gòu)也比較多,大部分用于分析類場(chǎng)景,下面比較幾種常見的架構(gòu)特點(diǎn)。 Citus Citus以插件的方式擴(kuò)展到postgresql中,獨(dú)立于postgresql內(nèi)核,所以能很快的跟上pg主版本的更新,部署也比較簡(jiǎn)單,是現(xiàn)在非常流行的分布式方案。Citus在蘇寧有大規(guī)模應(yīng)用,微軟也提供citus的商業(yè)支持。下面是citus的架構(gòu): Citus節(jié)點(diǎn)主要分為協(xié)調(diào)節(jié)點(diǎn)和工作節(jié)點(diǎn),協(xié)調(diào)節(jié)點(diǎn)不存儲(chǔ)真實(shí)數(shù)據(jù),只存儲(chǔ)數(shù)據(jù)分布的元信息,實(shí)際的數(shù)據(jù)被分成若干分片,打散到不同worker節(jié)點(diǎn)中,應(yīng)用連接協(xié)調(diào)節(jié)點(diǎn),協(xié)調(diào)節(jié)點(diǎn)進(jìn)行sql解析,生成分布式執(zhí)行計(jì)劃,下發(fā)到worker節(jié)點(diǎn)執(zhí)行,cn將結(jié)果匯總返回客戶端。 pgxc && pgxl Pgxc是經(jīng)典的分布式數(shù)據(jù)庫(kù)架構(gòu),是真正的企業(yè)級(jí)HTAP,我們看到市面上很多分布式數(shù)據(jù)庫(kù)產(chǎn)品都是基于pgxc架構(gòu)擴(kuò)展而來。pgxc是和pg內(nèi)核緊耦合的,是嵌入到pg內(nèi)核中,最初pgxc的核心開發(fā)者將pgxc商業(yè)化,創(chuàng)建了stormdb,進(jìn)行了一些并行算子優(yōu)化,后來TransLattice公司將stormdb收購(gòu),并且將項(xiàng)目開源,就是現(xiàn)在的pgxl,所以pgxc和pgxl是一脈相承的,大部分代碼是直接移植過來的。下面是pgxc的架構(gòu): 其實(shí)這個(gè)架構(gòu)和citus優(yōu)點(diǎn)類似,也是分為協(xié)調(diào)節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn),數(shù)據(jù)也是通過hash分布到不同數(shù)據(jù)節(jié)點(diǎn)上,只是在集群中增添了全局事務(wù)管理組件,保證全局事務(wù)的一致性。 Greenplum Greenplum是pivotal公司推出的一款開源olap的mpp數(shù)據(jù)庫(kù),greenplum的用戶在某種程度上甚至超越了pg,很多人可能是通過greenplum才認(rèn)識(shí)的pg,可見greenplum的風(fēng)靡。下面是greenplum架構(gòu): Master節(jié)點(diǎn)存儲(chǔ)全局系統(tǒng)元數(shù)據(jù)信息,不存儲(chǔ)真實(shí)數(shù)據(jù)。數(shù)據(jù)通過hash分布到不同的segment中,master作為sql的全局入口,負(fù)責(zé)在segment中分配工作負(fù)載,整合處理結(jié)果,返回客戶端。 |
|