Greenplum用了大半年了,要給部門其餘同事作下分享,寫了個ppt,其中看到「 Greenplum是一款典型的Shared-Nothing 分佈式數據庫系統。」,看到Shared-Nothing架構,之前只從字面上知道就是不共享,可是對數據庫架構瞭解的很少,怕別人問起來就尷尬了,就補了下課,記錄下吧。node
數據庫構架設計中主要有:Shared Everthting、Shared Disk、Shared Nothing等。mysql
通常是單體主機,共享cpu/memory/io,單節點 的sqlsever、mysql、oracle等關係型數據庫都是Shared Everthting,實例或者機器出故障了,整個服務就停用了,可用性差點。sql
感受這個概念就是針對oracle RAC來的,簡單來講就是多個實例共享數據(磁盤),架構圖:數據庫
說明: 應用實例能夠有多個,能夠是服務器,也能夠是一個服務器多個服務,簡單說這種狀況下,實例只要不是所有掛了,就還能訪問,可是數據庫磁盤掛了,整個服務就不可用了。服務器
大數據時代的到來,通常都是這個套路了,就是各玩各的(cpu、內存、存儲都不共享),最後彙總展現。架構
(2)說明oracle
(a)namenode,名字節點,要管理元數據信息(Metadata),注意,只存儲元數據信息。分佈式
(b) datanode,數據節點。用於存儲文件塊。爲了防止datanode掛掉形成的數據丟失,對於文件塊要有備份,一個文件塊有三個副本。oop
hadoop默認是三個副本,這樣即便其中一個datanode出故障了,也不要緊,還能正常提供服務。大數據
(1)Greenplum架構圖
(2)說明
(a)Master主機負責:創建與客戶端的鏈接和管理;SQL的解析並造成執行計劃;執行計劃向Segment 的分發收集Segment的執行結果;Master不存儲業務數據,只存儲數據字典。
(b)Segment主機負責:業務數據的存儲和存取;用戶查詢SQL的執行。
示例中假若有400萬數據,4個segment host各自存儲100萬數據,cpu、內存、數據都不共享,根據master執行計劃,返回數據到master節點,由master節點彙總返回client,另外greenplum是雙備份機制。
說明: 其實這些都是概念性的東西,只是方便你們快速理解而已,不用太糾結,再說了如今mysql、oracle rac等也好多都集羣部署了,有點混合的意思了。
I’m 「軟件老王」,若是以爲還能夠的話,關注下唄,後續更新秒知!歡迎討論區、同名公衆號留言交流!