2017-09-23 171 views

回答

1

... lastApplied是應用於狀態機的最高日誌條目,但是與commitIndex有什麼不同呢?

這些在實際系統中是不同的,因爲提交日誌中的數據的組件通常與將其應用於複製的狀態機或數據庫的組件分離。 commitIndex通常僅爲納秒,或者可能比lastApplied更新的幾毫秒。

matchIndex對領導只是commitIndex追隨者?如果不是有什麼區別?

它們是不同的。有一段時間數據位於服務器上,但尚未提交,例如複製期間。

領導跟蹤每個對等方的最新未提交數據,只需向每個對等方發送log[matchIndex[peer], ...]而不是整個日誌。如果同伴顯着落後於領導者,這尤其有用;因爲領導者可以通過一系列小的AppendEntries調用來更新對等點,從而逐步使對等點更新。

+0

非常感謝您的回答,另一個快速問題,是'matchIndex'中的信息已經在'nextIndex'中捕獲了嗎?由於'nextIndex - 1'應該是'matchIndex' – Jal