流言蜚語 Gossip

概況

Gossip 協(xié)議,利用一種隨機帶有傳染性的方式將信息傳播到整個網(wǎng)絡(luò)中,并在一定的時間內(nèi)使得所有節(jié)點數(shù)據(jù)一致。

一些定義

直接郵寄

直接將更新數(shù)據(jù)發(fā)送到對應(yīng)節(jié)點,發(fā)送失敗將數(shù)據(jù)緩存下來然后重傳

反熵

每隔一段時間隨機選擇某個其他節(jié)點相互交換自己的所有數(shù)據(jù)消除兩者之間的數(shù)據(jù)差異,實現(xiàn)數(shù)據(jù)最終一致。

實現(xiàn)方式有:推、拉、推拉

每次反熵都需要對比所有的數(shù)據(jù),所以很消耗性能和通信,可以通過校驗和等機制減少通信數(shù)據(jù)量

謠言傳播

當(dāng)一個節(jié)點有了新的數(shù)據(jù)后,這個節(jié)點變成活躍狀態(tài),周期地聯(lián)系其他節(jié)點發(fā)送新數(shù)據(jù),直到所有節(jié)點都有了新的數(shù)據(jù)。

因為傳遞到別的節(jié)點后,別的節(jié)點也會變成活躍節(jié)點去傳播這個數(shù)據(jù),所以就像謠言一樣廣泛被傳播。

這個和網(wǎng)絡(luò)中的泛洪更新時類似的。

過程

其實 gossip 協(xié)議的過程非常簡單

  1. 收到新數(shù)據(jù)的節(jié)點將數(shù)據(jù)直接郵遞給別人
  2. 通過謠言不斷傳播
  3. 最終所有節(jié)點數(shù)據(jù)一致
  4. 過程中如果出現(xiàn)意外進行重傳
  5. 定期進行反熵保證數(shù)據(jù)最終一致

總結(jié)

其實 gossip 就是一個不斷傳播更新的過程,只是在過程中添加了協(xié)調(diào)讓節(jié)點的數(shù)據(jù)竟可能去往最終一致上靠。很顯然,雖然數(shù)據(jù)最終一致,但是過程中肯定會有不一致的情況存在,雖然更新收斂速度很快,但是還是存在,并且網(wǎng)絡(luò)中的通信會很頻繁也是一個問題。

設(shè)計合理的反熵策略,利用一個閉環(huán)的更新或者是一個快速比較器或許能更加快速的得到同步的信息。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容