問題タブ [fault-tolerance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - Azure インスタンスのクラッシュの検出
Azure ロールのインスタンスがクラッシュしたという事実を検出したいと考えています。私の場合の検出とは、私の役割の別のインスタンスがクラッシュについて通知されることを意味します。以下で説明する私の考えを確認するか、別の解決策を提案してください。
私が思いついたアイデアは、Azure Queue 内のアイテムの処理時間が限られているという事実を利用しています。
- Azure キューを構成します。ロールのすべてのインスタンスがこのキューをリッスンします。
- 内部エンドポイントを持つようにロール インスタンスを構成する
- インスタンス A が起動すると、メッセージがキューにポストされます。メッセージには、インスタンス A の ID、A の内部エンドポイントの IP、このメッセージを A に転送する必要があるマーカーが含まれています。
- ほとんどの場合、メッセージは別のインスタンス B で終了します。B は内部エンドポイントを介して MessageId と PopReceipt を A に転送します。インスタンス A は、この ctr http://msdn.microsoft.com/en-us/library/dn451949.aspxを使用して CloudQueueMessage のオブジェクトを作成します。
- インスタンス A は、受信したメッセージの表示タイムアウトを無限に更新し始めます。Azure キューの観点からすると、このメッセージは非常に長い間処理されます。最初の更新で、A は「このメッセージを転送する」マーカーを削除します。
- インスタンス A がクラッシュすると、処理の延長が停止します。メッセージは、すぐに他のインスタンスで自動的に表示されるようになります。
- インスタンス C はメッセージを取得し、クラッシュした A について学習します。メッセージにはインスタンス A の ID が含まれており、「このメッセージを転送する」マーカーは含まれていません。
- インスタンス A が正常に停止すると、そのキュー メッセージが処理済みとしてマークされます。
mpi - OpenMPI フォールト トレランス
OpenMPI アプリケーションに単純なフォールト トレランスを実装するという課題があります。私たちが抱えている問題は、MPI エラー処理を に設定しているにもかかわらずMPI_ERRORS_RETURN
、ノードの 1 つがクラスターから取り外されたときに、長いハングの後、次の MPI_ 呼び出しで次のエラーが発生することです。
ここからの私の見解は、OpenMPI を使用して 1 つのノードがネットワークからドロップすると、他のすべてのノードで処理を続行することはできないということです。誰かが私のためにこれを確認できますか、または btl_tcp_endpoint エラーを防ぐための方向性を教えてもらえますか?
OpenMPI バージョン 1.6.5 を使用しています。
memcached - Memcached フォールト トレランスおよびフェイルオーバー プロパティ
このページで述べたように: Memcached for PHP and failover、
Memcached のフェイルオーバーをテストしようとしています。
基本的に、サーバーの 1 つが停止しているとマークされた場合、残りのサーバーに後続のセットと取得が再分散されるようにしたいと考えています。
このページで、OPT_AUTO_EJECT_HOSTS がこれを実現するための 1 つのオプションであると述べた人がいます。
ただし、このページで説明されているように、Memcached::OPT_AUTO_EJECT_HOSTS は減価償却されているようです: http://hoborglabs.com/en/blog/2013/memcached-php
OPT_REMOVE_FAILED_SERVERS オプションも使用してみました。しかし、これは違いはありません。
また、OPT_SERVER_FAILURE_LIMIT を 1 に設定してみました。
私の場合、ベンチマーク/リクエスト ジェネレーターは BRUTIS です。
https://code.google.com/p/brutis/
libmemcached-1.0.16、memcached-1.4.15 を使用しています。memcached の PHP バージョンは 2.1.0 です。
フェイルオーバーと自動リバランスを機能させるにはどうすればよいですか。
これらのオプションのさまざまな組み合わせも試しています。しかし、うまくいきません。
関連する質問があります: Brutis と memcached FailOver
しかし、まだ答えはありません:(
誰かがこれについて考えている場合は、あなたの意見を共有してください。
前もってありがとう、アミット
hadoop - Hadoop はビザンチン障害を処理できないというのは本当ですか?
Hadoop と map-reduce に関するいくつかの論文を読んでいます。現在の設計では、Hadoop がワーカー クラッシュなどの障害に耐えることができるように見えますが、任意の障害 (フェイル サイレントではない障害) を処理するためのサポートはあまり提供されていません。これは本当ですか?true の場合、hadoop ジョブの出力の正確性を常に完全に信頼できるとは限らないことを意味しますか?
restart - ストーム フォールト トレランス: Nimbus はワーカーを別のマシンに再割り当てしますか?
同じマシンでワーカーを再起動するように storm-nimbus を作成するにはどうすればよいですか?
耐障害性をテストするために、同じマシンでワーカーが再起動されることを期待して、ワーカー プロセスで kill -9 を実行しますが、マシンの 1 つで、ニンバスが別のマシンでワーカーを起動します!!! Nimbus ログには、複数回の試行や異常またはエラーは表示されません!
助けていただければ幸いです、ありがとう!
c - 例外が発生したときに MPI エラー ハンドラが呼び出されない
ここ数日間、MPI を使用して、C でフォールト トレラントなアプリケーションを作成する実験を行ってきました。エラー ハンドラを MPI_COMM_WORLD コミュニケータにアタッチして、ノードがダウンした場合 (クラッシュが原因の可能性があります) に備える方法を学ぼうとしています。 MPI_Finalize() を呼び出さずに終了しても、プログラムはこの状況から回復して計算を続行できます。
これまでに発生した問題は、エラー ハンドラー関数を通信にアタッチしてノードをクラッシュさせた後、MPI がエラー ハンドラーを呼び出さず、すべてのスレッドを強制的に終了させることです。
自分のアプリケーションの問題かなと思い、ネットでサンプルコードを探して実行してみましたが同じ状況で… 現在実行しようとしているサンプルコードは以下の通りです。(ここから入手しましたhttps://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CC4QFjAA&url=http%3A%2F%2Fwww.shodor.org% 2Fmedia%2Fcontent%2F%2Fpetascale%2Fmaterials%2FdistributedMemory%2Fpresentations%2FMPI_Error_Example.pdf&ei=jq6KUv-BBcO30QW1oYGABg&usg=AFQjCNFa5L_Q6Irg3VrJ3fsQBIyqjBlSgA&sig2=8An4SqBvhCACx5YLwBmROA apologies for being in pdf but i didnt write it, so I now paste the same code below):
プログラムは単純なトークン リングを実装し、コメントで説明されているパラメーターを指定すると、次のようになります。
明らかに、私が見る出力では、 のどれも実行さprintf()
れccg_mpi_error_handler()
ていないので、ハンドラーがまったく呼び出されなかったと思います。役に立つかどうかはわかりませんが、ubuntu linux 12.04 を実行していて、apt-get を使用して MPI をインストールしました。プログラムのコンパイルに使用したコマンドは次のとおりです。
また、私が行うmpicc -v
と、次のようになります。
助けていただければ幸いです。ありがとう...
redis - Service Stack Redis は、Redis サーバーの再起動後に再接続します
Service Stack の RedisClient の BlockingDequeue を使用して、一部のデータを処理できるようになるまで保持します。呼び出しコードは次のようになります
Redis をホストしているサーバーが再起動されると、BlockingDequeue の接続はゾンビ状態になり、クライアント アプリケーションが再起動されるまで戻りません。
BlockingDequeue と PooledConnectionManager でタイムアウトを設定しようとしましたが、サーバー側でタイムアウトが強制されているため、どちらも役に立ちませんでした。
このタイプのフォールト トレランスはサービス スタックに組み込まれているのでしょうか。
それとも、実装で処理する必要があるものですか? もしそうなら、推奨されるアプローチはありますか?
asp.net - .NET フォールト トレラント StateServer
既知の利点 (Web ファーム、IIS のリサイクル) のために、Session を処理するために StateServer を使用します。
ただし、このフォールトトレラントを作成する方法を理解しようとしています。セッションに保存するものは重要ではなく、単にパフォーマンスのために使用されます。そのため、StateServer が利用できない場合は、ディスクからリロードできます。
ただし、StateServer がオンラインかどうかを検出する方法はないようです。したがって、StateServer がダウンしていても、次のコードはすべて正常に実行されます。
これで、例外がスローされないことは理にかなっています。書き込みごとにステータスをチェックする必要がある場合、セッション処理のパフォーマンスはあまり高くありません。したがって、応答が書き込まれるときにすべてのセッション変数が書き込まれると思います。
セッションを書き込もうとすると 500 エラーで失敗し、とにかくこのエラーをインターセプトして処理する方法がわからないという問題があります。
セッション状態サーバーにセッション状態要求を行うことができません。ASP.NET State サービスが開始されていること、およびクライアントとサーバーのポートが同じであることを確認してください。
私が望んでいるのは、書き込みがサイレントに失敗する (またはエラーをログに記録する) だけで、クライアントが影響を受けないことです。今書いているように、この単一障害点が原因でサイト全体がダウンします。
任意のアイデア - 明らかな何かが欠けていますか?
mysql - データ損失を防ぐための Innodb ログ フラッシュ
innodb エンジンに高電力のフォールト トレランスを持たせる必要がありますが、ハードウェア構成を変更できません。電話することをお勧めしますか
非常に重要な操作の後ですか?電源オフやプロセスのクラッシュによるデータ損失を防ぐのに役立ちますか?