冗長性とエラー |
Last modified 5:57 AM UTC, February 01 2005 |
BOINCは、ある型の冗長計算を提供します。 そのやり方では、 個々の計算は複数のクライアントで実行され、その結果どうしを比較し、 それらが「合意」に達した場合だけ受理します。 ときには、 新しくリザルトを作って送出しなければならないこともあります。
その[冗長計算の手順について、]詳細な部分のほとんどをBOINCが管理しますが、 アプリケーション開発者が関与しなければならない箇所も、 以下のように2つあります:
BOINC は自動的に3つのリザルトを作り、ばらばらなタイミングで送出しています。 時刻8のリザルト到着で、計算に成功したリザルトの数が2に達したので、 検証機能が呼びだされます。 合意に達していることを検出し、 ワークユニットは取込み機能(アシミレータ)で受け入れられています。 時刻10で新たなリザルト(result3)が到着しています。 検証が再び行われ、 この場合は result3 が功績(credit)を得ることができるか検査しています。
時刻 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
生成 検証と受入れ
WU x x x
生成 送出 成功
result 1 x x---------------x
生成 送出 成功
result 2 x x-------------------x
生成 送出 成功
result 3 x x-----------------------x
時刻 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
生成 検証と取込み
WU x x x
生成 送出 成功
result 1 x x---------------x
生成 送出 紛失 断念
result 2 x x-------- x
生成 送出 成功
result 3 x x-----------------------x
時刻 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
生成 検証と取込み
WU x x x
生成 送出 成功
result 1 x x---------------x
生成 送出 失敗
result 2 x x-------x
生成 送出 成功
result 3 x x-------------------x
生成 送出 成功
result 4 x x----------------------x