ビザンチン故障
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/12/24 09:58 UTC 版)
「ビザンチン将軍問題」の記事における「ビザンチン故障」の解説
ビザンチン故障とは、分散コンピューティングにおいて、アルゴリズムを実行中に発生する故障・障害である。不作為障害 (omission failures) と作為障害 (commission failures) が含まれる。不作為障害とは、クラッシュ、要求を受信しそこなうこと、応答を返しそこなうことなどを指す。一方、作為障害とは、要求を不正に処理すること、局所状態が壊れること、要求に対して不正または一貫しない応答を返すことなどを指す。ビザンチン故障が発生すると、ビザンチン・フォールトトレラント性を備えていないシステムは、予期しない動作をすることがある。 例えば、あるサブルーチンの出力が別のサブルーチンの入力になっているとき、第一のサブルーチンで生じた小さな丸め誤差が、第二のサブルーチンで大きな誤差を生じることがある。さらに、その結果を第三のサブルーチンに入力すると、その誤差はさらに大きくなることがあり、無意味な値を生成することもある。別の例として、ソースコードのコンパイルがある。コンパイラは、小さな構文上の誤りから、多くの誤りが生じることがある。こうなると、コンパイラの構文解析器は、ソースプログラムの字句情報や構文情報を見失ってしまう。そのような障害や故障が主要なインターネットサービスを停止させたこともある。例えば、2008年に、Amazon S3 が1ビットのハードウェアの障害がシステム全体に伝播したことで数時間ダウンしたことがある。 ビザンチン・フォールトトレラント性 (BFT) のあるアルゴリズムでは、そのアルゴリズムの実行経路を表す論理的抽象概念としてのプロセスがビザンチン故障に対処する。故障していないプロセスは、正当である。 ビザンチン故障を前提とした実世界の環境モデルでは、ハードウェアの故障やネットワーク輻輳・切断やソフトウェアのバグや悪意ある攻撃によって、コンピュータやネットワークが予期しない動作をする。ビザンチン・フォールトトレラント性アルゴリズムは、そのような故障や障害に対処し、仕様で解決するよう指定された問題を解決できなければならない。そのようなアルゴリズムは、一般に「ビザンチン故障の状態にあるプロセスを何個まで許容し対処できるか」によって特徴付けられる。これを回復力(resilience) t で表す。 ビザンチン将軍問題も含めた古典的な合意問題の多くは、システムのプロセス数を n としたとき、n > 3t を満たさない場合の解が存在しない。言い換えれば、全プロセスの3分の1未満が障害という状況でないと、正しい動作を保証できない。
※この「ビザンチン故障」の解説は、「ビザンチン将軍問題」の解説の一部です。
「ビザンチン故障」を含む「ビザンチン将軍問題」の記事については、「ビザンチン将軍問題」の概要を参照ください。
- ビザンチン故障のページへのリンク