Quorum的概念,一樣是分散式系統廣泛使用的概念。
wiki上面已經說明了,最小讀寫票數(quorum)算法,是為了在資料有一個以上的副本(冗餘)時,保證資料的最終一致性
做法。
原則上公式如下,V是幾分拷貝數,Vr是讀取的拷貝數,Vw是寫入的拷貝數。
Vr + Vw > V
Vw > V/2
在RDBMS裡面,因為系統是強一致性,所以讀寫問題考慮上不用擔心那麼多。
RDBMS如果是只有一台機器,那麼同時做讀寫操作時,系統一定會幫忙分先後,讀比較快,或者寫比較快。
RDBMS若做主從架構,讀寫就分離了,讀寫操作並不會互相影響。
而分散式資料庫並沒有這麼簡單,每個節點基本上同時提供讀/寫功能,但對同一筆資料的操作,又可能連線的入口是透過不同的節點進來。
物理上不同的機器,最多校時到秒
的等級,若單純想要用時間來比較讀和寫的操作,誰先進到系統那是不可能的。
分散式資料庫比的是將資料讀或寫,完成的復本數,也就是上面講的Quorum
,處理同時對某筆資料同時有讀寫的狀況。
實際上 Quorum 其實只是 Consistency Level 設定的一種,下一篇我們更進一步來了解有哪些Consistency Level以及相關的讀寫操作方式。
RF = 3 的寫入
RF = 3 的讀取