資料庫 構架設計中主要有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的各種架構,只需增加伺服器數就可以增加處理能力和容量。
本作品採用《CC 協議》,轉載必須註明作者和本文連結