2016-01-08 58 views
2

假設一個三部件筏集羣[主],B,C會發生複製但未提交日誌在筏協議什麼

客戶端發送的日誌,以A,A複製它b和c,一個應用日誌到狀態機和響應客戶端。 然後在b和c有機會將提交狀態複製到b和c之前崩潰。

b替換爲集羣領導者。 日誌響應客戶端時,未提交日誌會發生什麼情況?

它會被b再次複製或丟棄嗎?

然後假定一個4-構件筏集羣[主],B,C,d

客戶端發送登錄到,一個複製它B和C(不d)所示,應用日誌到狀態機並響應客戶端,然後在提交狀態複製到b和c和d之前崩潰。

d代替a成爲集羣領導者。那麼在日誌響應客戶端時,未提交日誌會發生什麼情況? 它會被丟棄嗎?

回答

2

我認爲你很困惑「承諾」與「應用」。該條目被視爲已提交,因爲它已保存在大多數服務器中,但尚未應用。 B是領導者,因爲它的日誌是最新的,並且當它設法從其自己的術語中應用一個條目時,也將應用來自A的條目。

在第二種情況下,D不能成爲領導者,因爲它的日誌不是迄今爲止,B和C將不會授予他們的投票權。

相關問題