quorom 機制,是一種分布式系統中常用的,用來保證資料冗餘和最終一致性的投票演算法,其主要數學思想**於鴿巢原理。
在有冗餘資料的分布式儲存系統當中,冗餘資料物件會在不同的機器之間存放多份拷貝。但是同一時刻乙個資料物件的多份拷貝只能用於讀或者用於寫。
該演算法可以保證同乙份資料物件的多份拷貝不會被超過兩個訪問物件讀寫。
演算法**於[gifford, 1979][3][1]
。 分布式系統中的每乙份資料拷貝物件都被賦予一票。每乙個操作必須要獲得最小的讀票數(vr)或者最小的寫票數(vw)才能讀或者寫。如果乙個系統有v票(意味著乙個資料物件有v份冗餘拷貝),那麼這最小讀寫票必須滿足:
vr + vw > v
vw > v/2
第一條規則保證了乙個資料不會被同時讀寫。當乙個寫操作請求過來的時候,它必須要獲得vw個冗餘拷貝的許可。而剩下的數量是v-vw 不夠vr,因此不能再有讀請求過來了。同理,當讀請求已經獲得了vr個冗餘拷貝的許可時,寫請求就無法獲得許可了。
第二條規則保證了資料的序列化修改。乙份資料的冗餘拷貝不可能同時被兩個寫請求修改。
在分布式系統中,冗餘資料是保證可靠性的手段,因此冗餘資料的一致性維護就非常重要。一般而言,乙個寫操作必須要對所有的冗餘資料都更新完成了,才能稱為成功結束。比如乙份資料在5臺裝置上有冗餘,因為不知道讀資料會落在哪一台裝置上,那麼一次寫操作,必須5臺裝置都更新完成,寫操作才能返回。
對於寫操作比較頻繁的系統,這個操作的瓶頸非常大。quorum演算法可以讓寫操作只要寫完3臺就返回。剩下的由系統內部緩慢同步完成。而讀操作,則需要也至少讀3臺,才能保證至少可以讀到乙個最新的資料。
quorum的讀寫最小票數可以用來做為系統在讀、寫效能方面的乙個可調節引數。寫票數vw越大,則讀票數vr越小,這時候系統寫的開銷就大。反之則寫的開銷就小。
分布式系統
分布式系統和計算機網路系統的共同點是 多數分布式系統是建立在計算機網路之上的,所以分布式系統與計算機網路在物理結構上是基本相同的。他們的區別在於 分布式作業系統的設計思想和網路作業系統是不同的,這決定了他們在結構 工作方式和功能上也不同。網路作業系統要求網路使用者在使用網路資源時首先必須了解網路資源...
分布式系統
分布式,一來就直接看書,除非你有比較深厚的技術功底,要不還是很晦澀難懂的。先想想為什麼會有分布式,分布式怎麼來的。傳統的電信 銀行業,當業務量大了之後,普通伺服器cpu io 網路到了100 請求太慢怎麼辦?最直接的做法,公升級硬體,反正也不缺錢,ibm小型機,大型機,採購了堆硬體。但是網際網路不能...
分布式系統
zookeeper讓服務配置變得更簡單 zookeeper是hadoop下的乙個子專案,它是乙個針對大型分布式系統的可靠的協調系統,提供的功能包括 配置維護 名字服務 分布式同步 組服務等。zookeeper是可以集群複製的,集群間通過zab zookeeper atomic broadcast 協...