聊聊SWIM Protocol
SWIM的全稱是Scalable, Weakly-Consistent, Infection-Style, Processes Group Membership Protocol
heartbeats
傳統的諸如heartbeats這種membership protocols,每個node週期性地向網路中的所有其他節點發送heartbeat來表示自己是alive的,如果peer超過指定interval沒有收到node的heartbeart則該node被認定為dead。這種方式適用於小型網路,其傳送的heartbeart數量為O(n^2),當網路中有成千上萬的node時則會造成巨大的網路負擔;SWIM採用Infection-Style dissemination來解決這個問題
tasks
與傳統的heartbeats相比,SWIM將整個過程分為Failure Detection及Membership update Dissemination兩個task
SWIM的failure detection過程分為兩個部分,一個是direct ping,一個是indirect ping