SWIM「アウトソーシングされた心臓の鼓動」スケーラブル弱一貫性感染型プロセスグループメンバーシップ(SWIM)プロトコルは、分散システムで使用される「アウトソーシングされたハートビート」[ 1 ]に基づくグループメンバーシッププロトコルであり、2002年にAbhinandan Das、Indranil Gupta、およびAshish Motivalaによって初めて導入されました。[ 2 ] [ 3 ]これは、障害検出とグループメンバーシップの伝播を組み合わせたハイブリッドアルゴリズムです。
不動産
このプロトコルは以下の保証を提供する。
- 高い完全性:完全な完全性が保証されます(例えば、グループ内のいずれかのノードのクラッシュ障害は、最終的にすべての稼働中のノードによって検出されます)。
- 検出時間:検出時間(ノード障害発生から検出までの時間)の期待値は
、 どこ
はプロトコル期間の長さであり、
は、グループ内の故障していないノードの割合です。[ 3 ]
拡張機能
オリジナルの SWIM 論文では、プロトコルをより堅牢にするための以下の拡張機能がリストされています。[ 2 ]
- 疑わしいノード:pingメッセージに応答しないノードは、最初は障害としてマークされません。代わりに、「疑わしい」ノードとしてマークされます。疑わしいノードを検出したノードは、このメカニズムを含む他のすべてのノードにマルチキャストメッセージを送信します。疑わしいノードがタイムアウトしきい値より前にpingに応答した場合、マルチキャスト経由で「生存」メッセージが送信され、ノードから「疑わしい」ラベルが削除されます。
- 感染型拡散:マルチキャストを介してノード障害情報を伝播する代わりに、プロトコルメッセージはノードの生存状態を判断するために使用されるpingメッセージに便乗して送信されます。これはゴシップ拡散に相当します。
- ラウンドロビン方式によるプローブ対象の選択:プロトコルの各タイムステップでプローブ対象ノードをランダムに選択する代わりに、各ノードがラウンドロビン方式でプローブ対象を選択するようにプロトコルが変更されました。これにより、平均検出時間を低下させることなく、プロトコルの最悪ケースにおける検出時間を制限できます。
参考文献
- ↑ペトロフ、アレックス (2019).データベース内部構造.オライリーメディア.
- 1 2 Gupta, Indranil; Chandra, Tushar D.; Goldszmidt, Germán S. (2001年8月1日). 「スケーラブルで効率的な分散障害検出器について」 .第20回ACM分散コンピューティング原理シンポジウム議事録. PODC '01. 米国ロードアイランド州ニューポート: Association for Computing Machinery. pp. 170–179 . doi : 10.1145/383962.384010 . ISBN 978-1-58113-383-7. S2CID 216594 .
- 1 2 Das, A.; Gupta, I.; Motivala, A. (2002年6月23日). 「SWIM: スケーラブルな弱一貫性感染型プロセスグループメンバーシッププロトコル」.国際信頼性システムおよびネットワーク会議議事録. pp. 303–312 . doi : 10.1109/DSN.2002.1028914 . ISBN 0-7695-1597-5. S2CID 11094028 .