故障モデル
分散システムがどの程度激しく故障するか。ある分散アルゴリズムについて、「この故障モデルならこの性質は満たされるけどこの故障モデルでは満たされない」みたいに使ったりする。 なんでもありの最強の故障モデル
bitcoin とかはこのモデルだと思う
他のサーバから得た情報に関しては嘘をつかないビザンチン故障
返事が返ってこないことがある
Receive omission: メッセージが受け取られないことがある
Send omission: メッセージを送れないことがある
正しい返事を返すけれども返事を返すのがめっちゃ早かったりめっちゃ遅かったりする
特定の期間から外れる (outside the specified time interval)
Value failure: 変な値を返す
State transition failure: 変な状態に遷移したりする
落ちることがある。メッセージを送っても返事はずっと返ってこない
落ちることがある。そして他のノードはそのノードが落ちたことがわかる
文献によっては Fail-stop と Crash が別だったり同じだったりしてよくわからない
落ちることがある。再起動してくることがある。
メッセージの順序が入れ替わることがある
Verdiに出てきたけど一般的にこの名前なのか不明 メッセージが複製されることがある
Verdiに出てきたけど一般的にこの名前なのか不明 他に Dropping (メッセージが落ちる) とかあったけどそれは Omission failure な気がする
障害が起こらない理想的な世界
よく出てくるもの: Byzantine, Omission, Crash-stop, Crash-recovery
Failure と Fault の違い
Failure: システムが提供できなかった振る舞い
Fault: failure の原因
Failure model: システムがどのような振る舞いをするかのモデル
パワポ
参考 (failure model distributed systems とかでググった結果)
あんまり書いてあることが統一されてない。もっとちゃんとした文献があれば嬉しいけど