「分散式技術專題」基於Gossip協議的去中心服務

Hubble資料庫發表於2023-02-14

概述

Gossip 協議可以翻譯為流言協議。它是在 1987 年發表在 ACM 上的論文 《Epidemic Algorithms for Replicated Database Maintenance》中被提出的。論文中給 Gossip 協議的定義是一個以流行病傳播的方式為基礎的計算機點對點通訊程式或過程(a procedure or process of computer peer-to-peer communication that is based on the way epidemics spread)。主要是一些分散式系統用來確保對等節點之間的資料同步。基於 Gossip 協議去傳遞公共資料的方法就是依靠每個節點來將資料傳遞給其“鄰居”,類似於生物中病毒的傳播形式,所以 Gossip 協議有的時候也會被稱為流行病協議(epidemic protocol)。

傳播演示

我們去理解 Gossip 協議的傳播時可以直觀地理解為謠言的傳播,一個謠言由某一個人發起後,謠言會不停地散步到每一個人的身邊人,這個過程是一個非同步的過程,可以用一個圖來感受一下。

假設謠言由一個人發起,之後每一個人最多傳播兩個人,可以看到 16 個人最終在五個階段內謠言傳播完成。從圖中可以看出 Gossip 協議的傳播是有著非同步的優點,而且最終所有節點都會接收到資訊。不過也可以看出比較明顯的缺點,一是沒有辦法確定一個準確的時間來保證所有節點都接收到了訊息,二是從第四階段、第五階段可以看出訊息傳播過程中出現了訊息冗餘的情況,第五階段尤為明顯。

型別

•傳播協議(Dissemination Protocols)或者又稱為謠言散播協議(Rumor-mongering Protocols)。此類協議通常是利用 gossip 來傳播資訊,但在一個事務從發生到提交的過程中存在潛在的高延遲,但該缺點在對操作一些比較陳舊的資料時不會有太嚴重的損失。
•計算聚合協議(Protocols that compute aggregates)。此類協議透過在網路中的節點處取樣資訊,並將這些值組合以得到一個系統範圍的值(某些測量節點的最大值,最小值等等)來計算整個網路範圍的集合。關鍵的要求是集合必須可以透過固定大小的成對資訊交換來計算;這些通常在系統大小對數的若干輪資訊交換之後終止,到那時,一個全對全的資訊流模式將已經建立。

優勢

有極強的擴充套件性。可以允許任意節點的新增或刪除,並且新新增的節點狀態可以和其他節點保持一致。

有比較好的容錯。任何一個節點的當機或重啟都不會影響到 Gossip 訊息的傳播。

一致性收斂。 Gossip 協議的訊息是以指數級的速度進行傳播的,系統的不一致性會在短時間內收斂一致。

去中心化。所有節點都是對等的,每個節點都不需要知道現在整個叢集的狀態,只要網路聯通就能透過 gossip 把訊息傳播出去。

 

以上為基於 Gossip協議的去中心服務, 「分散式技術專題」是國產資料庫 hubble 團隊精心整編,專題會持續更新,歡迎大家保持關注。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026685/viewspace-2935103/,如需轉載,請註明出處,否則將追究法律責任。

相關文章