web-dev-qa-db-ja.com

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

システム/プログラム/分散アルゴリズム/ ...は、述語robustまたはfault-tolerantで記述されることがよくあります。

違いはなんですか?


詳細:

+ robust + "fault-tolerant"を検索すると、2つのヒットしか得られず、どちらも役に立ちません。

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

12
DaveFar

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

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

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

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

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

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

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

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

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

NASA気候科学者からのこの要約では、気候モデルを評価するための基準として堅牢性について説明しています。

MIT=研究者によるこの論文は、フォールトトレランスとロバスト性が重複するドメインであるワイヤレスプロトコルアプリケーションを調査しますが、著者はアプリケーション、プロトコル、アルゴリズムを使用する一方で、トポロジーおよびコンポーネントに関する「フォールトトレランス」:

33
johnnyb

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

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

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

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

これらの用語は非公式に使用されるため、完全に正規の順序はありません。 「高可用性」は通常、「耐障害性」または「耐障害性」のすぐ下の強力な主張です。しかし、「堅牢」は「堅牢」よりも優れているでしょうか。またはその逆?それはコンテキストに依存します。これらは、製品の宣伝文句としても頻繁に使用され、誇りと意図的な不正確さが伴います。

通常、これらの目標に向けて取り組んでいる組織は、内部で合意された独自の進行状況を持ち、通常は少なくともプロジェクトの目標/成果物および "スリーナイン"または "シックスナイン"などの外部指標に大まかにリンクされています。

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

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

「稼働中」と「私たちがやりたいこと」の間のこれらの可能な差異、およびそのような差異を指定、測定、および防止する方法は、冗長性、強化、およびその他の障害に向けたその他のステップがあったとしても、長い間困難でした許容範囲がとられています。そして、非公式な使用法では、「走る」と「望んでいるように走る」のさまざまな形式が融合され、必要なすべての明確な区別はありません。

0
Jonathan Eunice