高水位標記
寫入前記錄中顯示最後一次成功複製的索引。
又稱:提交索引
問題
寫入前記錄 模式用於在伺服器崩潰並重新啟動後復原狀態。但寫入前記錄不足以在伺服器故障時提供可用性。如果單一伺服器故障,則客戶端將無法運作,直到伺服器重新啟動。若要獲得可用性更高的系統,我們可以在多個伺服器上複製記錄。使用領導者和追隨者,領導者會將其所有記錄條目複製到多數法定人數的追隨者。現在,如果領導者故障,則可以選出新的領導者,而客戶端大多可以像以前一樣繼續使用叢集。但仍有幾件事可能出錯
- 領導者可能在將其記錄條目傳送給任何追隨者之前就故障。
- 領導者可能在將記錄條目傳送給部分追隨者後,但在傳送給多數追隨者之前就故障。
在這些錯誤情境中,有些追隨者可能會遺漏其記錄中的條目,而有些追隨者可能會有比其他追隨者更多的條目。因此,每個追隨者都知道記錄的哪一部分可以安全地提供給客戶端,這變得非常重要。
解決方案
高水位標記是記錄檔案中的索引,用於記錄已知已成功複製到多數法定人數追隨者的最後一個記錄條目。領導者也會在其複製期間將高水位標記傳遞給其追隨者。叢集中的所有伺服器都應僅傳輸反映低於高水位標記更新的資料給客戶端。
如需更多詳細資訊,請參閱 oreilly.com 上線上電子書的第 10 章
此模式是分散式系統模式的一部分
2023 年 11 月 23 日