假設您有一個三節點副本集。節點1是主要的。節點2是次要的,節點3是延遲10秒的次要運行。所有對數據庫的寫操作都是以w = majority和j = 1來發布的(我們的意思是getLastError調用具有這些值)。Mongodb在副本集中回滾
寫入操作(可能是插入或更新)是從應用程序在時間= 0開始的。在時間= 5秒時,主節點1下降一小時,另一個節點被選爲主節點。
節點1恢復時會有數據回滾嗎?選擇最佳答案。
- 始終是
- 始終沒有
- 也許,這取決於節點3是否已經處理了寫。
- 也許,這取決於節點2是否處理了寫入。
任何幫助將不勝感激。
5.取決於什麼其他寫你已經打算和節點1個節點2 – Sammaye
感謝之間的複製滯後sammaye ....這可能是4個選項中選擇最佳答案? –
沒有延遲的單次寫操作我會去2,那麼操作應該在故障轉移時被複制到新的主服務器上,特別是當我在第一個評論中沒有看到w =多數時,應該意味着2/3的成員應該確認寫入,並且由於節點3被延遲,所以它不應該在那裏確認它。 – Sammaye