Shared Everthting壤短、Shared Nothing帘撰、和Shared Disk
數(shù)據(jù)庫(kù)構(gòu)架設(shè)計(jì)中主要有Shared Everthting慰于、Shared Nothing休里、和Shared Disk:
Shared Everthting:一般是針對(duì)單個(gè)主機(jī),完全透明共享CPU/MEMORY/IO,并行處理能力是最差的,典型的代表SQLServer
Shared Disk:各個(gè)處理單元使用自己的私有 CPU和Memory,共享磁盤系統(tǒng)迎罗。典型的代表Oracle Rac, 它是數(shù)據(jù)共享,可通過(guò)增加節(jié)點(diǎn)來(lái)提高并行處理的能力柳畔,擴(kuò)展能力較好。其類似于SMP(對(duì)稱多處理)模式盾剩,但是當(dāng)存儲(chǔ)器接口達(dá)到飽和的時(shí)候,增加節(jié)點(diǎn)并不能獲得更高的性能 根悼。
Shared Nothing:各個(gè)處理單元都有自己私有的CPU/內(nèi)存/硬盤等挤巡,不存在共享資源,類似于MPP(大規(guī)模并行處理)模式糊肤,各處理單元之間通過(guò)協(xié)議通信升酣,并行處理和擴(kuò)展能力更好券膀。典型代表DB2 DPF和hadoop 肢执,各節(jié)點(diǎn)相互獨(dú)立预茄,各自處理自己的數(shù)據(jù)兴溜,處理后的結(jié)果可能向上層匯總或在節(jié)點(diǎn)間流轉(zhuǎn)。
我們常說(shuō)的 Sharding 其實(shí)就是Share Nothing架構(gòu)耻陕,它是把某個(gè)表從物理存儲(chǔ)上被水平分割拙徽,并分配給多臺(tái)服務(wù)器(或多個(gè)實(shí)例),每臺(tái)服務(wù)器可以獨(dú)立工作诗宣,具備共同的schema膘怕,比如MySQL Proxy和Google的各種架構(gòu),只需增加服務(wù)器數(shù)就可以增加處理能力和容量召庞。
Shared nothing架構(gòu)(shared nothing architecture)是一 種分布式計(jì)算架構(gòu)岛心。這種架構(gòu)中的每一個(gè)節(jié)點(diǎn)( node)都是獨(dú)立、自給的裁眯,而且整個(gè)系統(tǒng)中沒(méi)有單點(diǎn)競(jìng)爭(zhēng)鹉梨。有些系統(tǒng)需要集中保存大量的狀態(tài)信息——數(shù)據(jù)庫(kù)、應(yīng)用服務(wù)器或是其他類似的單點(diǎn)競(jìng)爭(zhēng)系統(tǒng)穿稳。
Shared Nothing在Web 應(yīng)用開(kāi)發(fā)中尤其受到歡迎存皂,究其原因是這種方案提供的scalability。Google在這個(gè)方面做了很好的示范逢艘。 在一個(gè)純Shared Nothing系統(tǒng)中旦袋,通過(guò)簡(jiǎn)單地增加一些廉價(jià)的計(jì)算機(jī)做為系統(tǒng)的節(jié)點(diǎn)卻可以獲取幾乎無(wú)限的擴(kuò)展。正是由于Shared Nothing架構(gòu)中不存在單一瓶頸而降低系統(tǒng)運(yùn)行速度它改。Google 稱之為sharding疤孕。
Failover, Failrecovery
Fail-over:故障轉(zhuǎn)移,當(dāng)某個(gè)節(jié)點(diǎn)故障時(shí)由另外一個(gè)節(jié)點(diǎn)來(lái)接替它的工作央拖。
Fail-recovery:故障恢復(fù)祭阀,指節(jié)點(diǎn)故障后其上業(yè)務(wù)修復(fù)的過(guò)程。