關於NRW演算法(Quorum演算法)

來源:互聯網
上載者:User

標籤:

  在分布式系統中,冗餘資料是保證可靠性的手段,因此冗餘資料的一致性維護就非常重要。一般而言,一個寫操作必須要對所有的冗餘資料都更新完成了,才能稱為成功結束。比如一份資料在5台裝置上有冗餘,因為不知道讀資料會落在哪一台裝置上,那麼一次寫操作,必須5台裝置都更新完成,寫操作才能返回。

對於寫操作比較頻繁的系統,這個操作的瓶頸非常大。Quorum演算法可以讓寫操作只要寫完3台就返回。剩下的由系統內部緩慢同步完成。而讀操作,則需要也至少讀3台,才能保證至少可以讀到一個最新的資料。

Quorum的讀寫最小票數可以用來做為系統在讀、寫效能方面的一個可調節參數。寫票數Vw越大,則讀票數Vr越小,這時候系統寫的開銷就大。反之則寫的開銷就小。

 

  Quorom 機制,是一種分布式系統中常用的,用來保證資料冗餘和最終一致性的投票演算法,其主要數學思想來源於鴿巢原理。

在有冗餘資料的分布式儲存系統當中,冗餘資料對象會在不同的機器之間存放多份拷貝。但是同一時刻一個資料對象的多份拷貝只能用於讀或者用於寫。

該演算法可以保證同一份資料對象的多份拷貝不會被超過兩個訪問對象讀寫。

演算法來源於[Gifford, 1979][3][1]。 分布式系統中的每一份資料拷貝對象都被賦予一票。每一個操作必須要獲得最小的讀票數(Vr)或者最小的寫票數(Vw)才能讀或者寫。如果一個系統有V票(意味著一個資料對象有V份冗餘拷貝),那麼這最小讀寫票必須滿足:

  1. Vr + Vw > V
  2. Vw > V/2

第一條規則保證了一個資料不會被同時讀寫。當一個寫操作請求過來的時候,它必須要獲得Vw個冗餘拷貝的許可。而剩下的數量是V-Vw 不夠Vr,因此不能再有讀請求過來了。同理,當讀請求已經獲得了Vr個冗餘拷貝的許可時,寫請求就無法獲得許可了。

第二條規則保證了資料的序列化修改。一份資料的冗餘拷貝不可能同時被兩個寫請求修改。

 

本文內容轉自於:http://www.cnblogs.com/netfocus/p/3622184.html

關於NRW演算法(Quorum演算法)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.