崩潰恢復的實現原理

2021-10-16 22:27:30 字數 552 閱讀 7672

前面我們已經清楚了zab協議中的訊息廣播過程,zab協議的這個基於原子廣播協議的訊息廣播過程,在正常情況下是沒有任何問題的,但是一旦leader節點崩潰,或者由於網路問題導致leader伺服器失去了過半的follower節點的聯絡(leader失去與過半follower節點聯絡,可能是leader節點和follower節點之間產生了網路分割槽,那麼此時的leader不再是合法的leader了),那麼就會進入到崩潰恢復模式。崩潰恢復狀態下zab協議需要做兩件事

1. 選舉出新的leader

2. 資料同步

前面在講解訊息廣播時,知道zab協議的訊息廣播機制是簡化版本的2pc協議,這種協議只需要集群中過半的節點響應提交即可。但是它無法處理leader伺服器崩潰帶來的資料不一致問題。因此在zab協議中新增了乙個「崩潰恢復模式」來解決這個問題。

那麼zab協議中的崩潰恢復需要保證,如果乙個事務proposal在一台機器上被處理成功,那麼這個事務應該在所有機器上都被處理成功,哪怕是出現故障。為了達到這個目的,我們先來設想一下,在zookeeper中會有哪些場景導致資料不一致性,以及針對這個場景,zab協議中的崩潰恢復應該怎麼處理。

例項崩潰恢復原理 檢查點佇列的作用

資料庫中存在著buffercache,buffercache有很多的塊,其中包括髒塊 資料庫執行期間有很多的髒塊,這些髒塊是還未寫入磁碟,這時,如果資料庫存在的伺服器突然斷電宕機,出現故障,這些未寫入磁碟的髒塊的資料就會丟失。資料丟失分為兩種情況 1.可以丟失的資料 對於oracle資料庫來講,未提...

grub2崩潰恢復

grub2在mbr下,向後占用了大約50個扇區,實現了乙個小的resume 命令列,這個命令列,可以列各分割槽的檔案目錄,載入擴充套件命令模組,當grub2不能找到 boot grub 的檔案時,就會進入這個 resume 命令列狀態,booting from hard disk.grub load...

當SQLServer崩潰時如何恢復

任何資料庫系統都無法避免崩潰的狀況,即使你使用了clustered,雙機熱備 仍然無法完全 系統中的單點故障,何況對於大部分使用者來說,無法承受這樣昂貴的投資。所以,在系統崩潰的時候,如何 恢復原有的寶貴資料就成為乙個極其重要的問題了。在恢復的時候,最理想的情況就是你的資料檔案和日誌檔案都完好無損了...