1. 程式人生 > >資料庫構架設計中的Shared Everthting、Shared Nothing、和Shared Disk

資料庫構架設計中的Shared Everthting、Shared Nothing、和Shared Disk

Shared Everthting:一般是針對單個主機,完全透明共享CPU/MEMORY/IO,並行處理能力是最差的,典型的代表SQLServer

 

Shared Disk:各個處理單元使用自己的私有 CPU和Memory,共享磁碟系統。典型的代表Oracle Rac, 它是資料共享,可通過增加節點來提高並行處理的能力,擴充套件能力較好。其類似於SMP(對稱多處理)模式,但是當儲存器介面達到飽和的時候,增加節點並不能獲得更高的效能 。

 

Shared Nothing:各個處理單元都有自己私有的CPU/記憶體/硬碟等,不存在共享資源,類似於MPP(大規模並行處理)模式,各處理單元之間通過協議通訊,並行處理和擴充套件能力更好。典型代表DB2 DPF和hadoop ,各節點相互獨立,各自處理自己的資料,處理後的結果可能向上層彙總或在節點間流轉。

我們常說的 Sharding 其實就是Share Nothing架構,它是把某個表從物理儲存上被水平分割,並分配給多臺伺服器(或多個例項),每臺伺服器可以獨立工作,具備共同的schema,比如MySQL Proxy和Google的各種架構,只需增加伺服器數就可以增加處理能力和容量。

ps:Actor模型也用了Shared Nothing 這個設計。