堅牢性とフォールトトレランスの違いは何ですか?


12

システム/プログラム/分散アルゴリズム/ ...は、多くの場合、述語堅牢またはフォールトトレラントで記述されています。

違いはなんですか?


詳細:

+ robust + "fault-tolerant"でGoogleを検索すると、2回しかヒットしませんが、どちらも役に立ちません。

Googleで学者の用語を検索すると、タイトルに両方の用語が含まれている多くの論文が見つかります。残念ながら、彼らは用語を正確に定義していません:(しかし、彼らは両方の用語を使用しているので、どちらも他方を意味しないようです。



はい、それは彼らの意味を知るために私が最初に読んだことの一つでした。残念ながら、両方は同じものを抽象的なレベルで説明しますが、他のものは参照しません。それが私がここで尋ねている理由です。
DaveFar

回答:


33

どちらもアプリケーションの動作の一貫性を示しますが、「堅牢性」は入力に対するアプリケーションの応答を示し、「フォールトトレランス」はその環境に対するアプリケーションの応答を示します

一貫性のないデータで一貫して動作できるアプリは堅牢です。たとえば、地図アプリケーションは、さまざまなスペルの異なるさまざまな形式の住所を解析し、有用な場所を返すことができる場合、堅牢です。不正なフレームに遭遇した後、MP3のデコードを続行できる場合、音楽プレーヤーは堅牢です。画像エディターは、認識できない可能性のある埋め込まれたEXIFメタデータで画像を変更できる場合、特にEXIFデータを破壊することなく画像を変更できる場合、堅牢です。

一貫性のない環境で一貫して動作できるアプリは、フォールトトレラントです。プライマリが利用できないときに代替シャードにアクセスできる場合、データベースアプリケーションはフォールトトレラントです。APIホストに到達できない場合でも、キャッシュからのリクエストの処理を継続できる場合、Webアプリケーションはフォールトトレラントです。ストレージサブシステムは、ディスクメンバーがオフラインのときにパリティから計算された結果を返すことができる場合、フォールトトレラントです。

どちらの場合でも、アプリケーションは安定し、均一に動作し、データの整合性を維持し、エラーが発生した場合でも有用な結果を提供することが期待されます。ただし、堅牢性を評価する場合、データに関連する基準を見つけることができますが、フォールトトレランスを評価する場合、稼働時間に関連する基準を見つけることができます。

一方が必ずしも他方につながるとは限りません。モバイル音声認識アプリは非常に堅牢で、膨大なバックグラウンドノイズのあるさまざまな地域のアクセントで一貫して音声を認識できるすごい機能を提供できます。しかし、高速のセルラーデータ接続がなければ役に立たない場合、フォールトトレラントではありません。同様に、Webパブリッシングアプリケーションは非常に耐障害性が高く、すべてのレベルで複数の冗長性があり、失敗することなくデータセンター全体を失う可能性がありますが、ユーザーテーブルを削除して、誰かが姓にアポストロフィを登録したときにクラッシュする場合、まったく堅牢ではありません。

区別を説明するのに役立つ学術文献を探している場合は、広くソフトウェア全般ではなく、ソフトウェアを使用する特定のドメインを探すことができます。分散アプリケーションの研究は、フォールトトレランスの基準にふさわしい基盤となる可能性があり、Googleは関連性のある研究の一部を公開しています。科学者は再現性のある結果をもたらす堅牢性の特性に特に関心があるため、データモデリング研究は堅牢性の問題に対処する可能性があります。気候モデリング、RF伝播モデリング、ゲノムシーケンスなど、役立つ可能性のある統計アプリケーションを説明した論文をおそらく見つけることができます。また、制御システムなどの「堅牢な設計」について議論しているエンジニアもいます。

Googleファイルシステムのホワイトペーパーでは、フォールトトレランスの問題へのアプローチについて説明しています。一般的に、コンポーネントの障害は日常的なものであり、アプリケーションはそれらに適応する必要があるという前提があります。

ラトガースのクラスのこのプロジェクトは、「コンポーネントフォールト」指向の「フォールトトレランス」の定義をサポートしています。

調査する分野に応じて、「ロバストモデリングXYZ」に関する多くの論文があります。ほとんどの場合、「ロバスト」の基準を要約で説明しますが、すべてはモデルが入力を処理する方法に関係していることがわかります。

NASAの気候科学者によるこの概要では、堅牢性が気候モデルの評価基準として説明されています。

MITの研究者によるこのペーパーでは、フォールトトレランスと堅牢性が重複するドメインであるワイヤレスプロトコルアプリケーションを検証しますが、著者はトポロジに関連して「フォールトトレランス」を使用しながら、アプリケーション、プロトコル、およびアルゴリズムを「堅牢」で説明しますおよびコンポーネント:


0

@johnnybの答えが本当に気に入っており、その鮮明な定義を支持しています。しかし、この分野で数十年間働いてきた私は、これらの用語が頻繁に使用される別の(はるかに形式的で正確ではない)方法を認識しています。

「信頼できない」から「完全に信頼できる」までの連続した非公式のポイントとして。

常に永久に稼働することを保証できるシステム、アプリケーション、またはサービスはありません(「継続的に利用可能」または「永続的に利用可能」)。「フォールトトレラント」は、「現在のテクノロジーを使用して人間ができることをすべて実行し、この機能が正常に動作し続けるようにしました」の代名詞となっています。

「堅牢」、「強化」、「高可用性」などの単語は、継続的な運用という目標に向けたマイルストーンとして使用されます。これらは、努力、投資、自信のレベルの向上を反映しています。

これらの用語は非公式に使用されるため、完全に標準的な順序付けはありません。「高可用性」は通常、「フォールトレジリエント」または「フォールトトレラント」のすぐ下にある強い主張です。しかし、「堅牢」よりも「強化」の方が優れていますか?またはその逆?コンテキストに依存します。これらはまた、製品マーケティングの主張として頻繁に使用されますが、それに伴うすべての誇張された意図的な不正確さがあります。

通常、これらの目標に向かって取り組んでいる組織には、プロジェクトの目標/成果物と「スリーナイン」や「シックスナイン」などの外部指標に少なくとも大まかにリンクされた、内部で合意された独自の進展があります

@johnnybは、重要な違いにも触れています。プラットフォームのアップ/ダウンステータス(可用性)と、アルゴリズム、アプリケーション、またはサービス属性の違いです。

「属性」と言うのは、多くの理由があるからです。パフォーマンス、正確性、および不確定性はほんの一部です。定格パフォーマンスのわずか10%で動作している場合、システムは有意義に利用可能であり、正しいですか?繁忙期の場合、事業主によるとそうではありません!本当にダウンしないシステムには大きな美徳はありませんが、多くの場合、誤った答えを与えます。最後に、入力の0.2%の変動が3,400%の異なる答えを与える場合、データ分析システムは「正しく」実行されていますか?おそらく...しかし、それは多くの人にとってかなり気まぐれで不満なモデルに見えるでしょう。属性の拡張リストは調べませんが、データの整合性、データの安全性、データのプライバシー、その他の正確性とセキュリティの問題が一般的な懸念事項です。(非常に大規模な組織または政府機関の場合、数年または製品サイクルだけでなく、数十年または場合によっては数世紀にわたって、これらの属性を保持することをますます心配しています。これを達成するための実証済みのアーキテクチャ、プロセス、またはアプローチはまだありません。)

「稼働中」と「必要なことを行う」ことの間のこれらの起こりうる差異、およびそのような差異を指定、測定、および防止する方法は、冗長性、強化、および障害に向かう他のステップがあったとしても、長年の課題でした-公差が取られています。そして、非公式の使用法では、「実行」と「好きなように実行」のさまざまな形式が混同されますが、明確な区別は必要ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.