• 狀態機復制

    編輯
    本詞條由“匿名用戶” 建檔。

    狀態機復制

    編輯

    在計算機科學中,狀態機復制(SMR)或狀態機方法是一種通過復制服務器和協調客戶與服務器副本的交互來實現容錯服務的一般方法。該方法還為理解和設計復制管理協議提供了一個框架。

    問題定義

    編輯

    分布式服務

    就客戶和服務而言。每個服務包括一個或多個服務器,并輸出客戶端通過提出請求而調用的操作。盡管使用單一的、集中的服務器是實現服務的最簡單的方法,但所產生的服務只能像執行該服務器的處理器一樣具有容錯性。如果這種容錯水平是不可接受的,那么可以使用獨立故障的多個服務器。通常,單個服務器的副本在分布式系統的不同處理器上執行,并使用協議來協調客戶與這些副本的交互。

    狀態機

    編輯

    在接下來的討論中,狀態機將被定義為以下數值的元組(也見Mealy機和Moore機)。

    一組狀態 一組輸入 一組輸出 一個過渡函數 (Input × State → State) 一個輸出函數 (Input × State → Output) 一個稱為Start的區分狀態。 一個狀態機從標記為Start的狀態開始。每個收到的輸入都會通過過渡和輸出函數產生一個新的狀態和一個輸出。狀態保持穩定,直到收到新的輸入,而輸出被傳達給適當的接收器。

    這種討論要求狀態機是確定性的:同一個狀態機的多個副本從起始狀態開始,以相同的順序接收相同的輸入,將在產生相同的輸出后到達相同的狀態。

    通常情況下,基于狀態機復制的系統自愿限制其實現,以使用有限狀態機來簡化錯誤恢復。

    容錯性

    編輯

    確定性是提供容錯性的一個理想特性。直觀地說,如果一個系統存在多個副本,其中一個的故障會被注意到,因為它的狀態或輸出與其他的不同。

    稍微推理一下,容錯所需的最小拷貝數是三個;一個有故障,另外兩個我們與之比較狀態和輸出。兩個副本是不夠的,因為沒有辦法分辨哪個副本是有故障的。

    進一步的推理表明,一個三副本系統最多可以支持一次故障(之后必須修復或替換有問題的副本)。如果不止一個副本發生故障,所有三個狀態和輸出都可能不同,而且沒有辦法選擇哪個是正確的。

    一般來說,一個支持F個故障的系統必須有2F+1個副本(也叫副本)。額外的副本被用作證據來決定哪些副本是正確的,哪些是有問題的。特殊情況下可以提高這些界限。

    所有這些推論的前提是,副本只經歷隨機的獨立故障,如內存錯誤或硬盤崩潰。由試圖撒謊、欺騙或串通的復制體引起的故障也可以由狀態機方法來處理,并進行單獨的修改。

    失敗的復制體不需要停止;它們可以繼續運行,包括產生虛假的或不正確的輸出。

    特殊情況。理論上,如果一個失敗的復制體被保證停止而不產生輸出,那么只需要F+1個復制體,客戶可以接受系統產生的xxx個輸出。現有的系統都沒有達到這個限制,但在分析建立在容錯層之上的系統時,經常會用到這個限制(因為容錯層為其上面的所有層提供故障停止語義)。

    狀態機復制

    狀態機方法

    編輯

    前面的直觀討論意味著以狀態機的方式實現容錯服務的簡單技術。

    在多個獨立的服務器上放置狀態機的副本。 接收客戶的請求,解釋為對狀態機的輸入。 為輸入選擇一個順序。 在每個服務器上按照選擇的順序執行輸入。 用狀態機的輸出響應客戶。 監控副本的狀態或輸出的差異。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/193177/

    贊 (1)
    詞條目錄
    1. 狀態機復制
    2. 問題定義
    3. 分布式服務
    4. 狀態機
    5. 容錯性
    6. 狀態機方法

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久