what is the safe read index in etcd(問題17)

顧名思義,safe read index就是安全的可讀索引,etcd經過這個來保證每次讀到的都是最新的數據,而不是髒數據。安全

簡單說一下讀數據的流程:服務器

一、leader收到讀請求以後,會把當前的commit index記錄下來,當作safe read index. 而後向其餘服務器廣播請求,以此來肯定本身是否仍是leader(若是收到集羣中大多數機器的迴應則仍是leader)日誌

二、肯定leader以後,狀態機會把safe read index以前的全部操做應用到狀態機裏索引

三、執行客戶端的讀請求,並返回結果it

若是客戶端一開始連的是follower,流程也基本一致,follower會從leader那裏獲取一個safe read index,而後等狀態機應用完以後再執行讀操做,並返回結果集羣

這裏再留一個問題:請求

若是follower當前的日誌跟leader相差較大,那麼按照這個流程,讀操做須要等待一段較長的時間才能獲取結果,那其實是不是這個樣子的呢?數據

相關文章
相關標籤/搜索