數據庫構架設計中的Shared Everthting、Shared Nothing、和Shared Disk
阿新 • • 發佈:2018-11-14
share mysq db2 向上 not sqlserve 能力 共享磁盤 結果
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 這個設計。
數據庫構架設計中的Shared Everthting、Shared Nothing、和Shared Disk