質問

現在、無料のペストリーDHTでパフォーマンステストをしています。FreePATARTYはJavaで完了したオープンソースDHTです。

目標は、一定数のノードが下がるとDHTの効果を監視することです。私の問題は、ノードを排除するための最良の方法がわからないです。現時点では、各ノードはマシン上の異なるポートから実行されています。PASTRY API http://www.freaspastry.org/freepastry/javadoc21a3/rice/pastry/pastrynode.html#destroy ()

ノード障害をシミュレートするのに非現実的であるかもしれませんが、TCPKILLを使用するなどの異なる方法でノードを殺す必要があるかどうかを心配していますか?

私はMac OS X Snow Leopardを実行していて、提案を聞くことに興味がありますか?

役に立ちましたか?

解決

ノードの障害の異なる異なる形式です。

最も一般的なものは、DHTを実行しているアプリケーションがシャットダウンされているため、単にオフラインであるノードです。

国内のインターネット接続の動的IPの変更は、基本的にそれがそれに関する既存のすべてのルーティングテーブルエントリを無効にするが、すべてのノードカウントを介して停止しないので、微妙に異なる効果を有する。あなたは1つを失い、あなたは新しいものを得る。

他の一般的な問題は、NATSによる到達可能性の問題です。そのノードの可視性は、NATタイプと最近連絡したかによって異なります。

結果として生じる鎮静の影響は、実際には非常に複雑になる可能性があります。まず第一に、個々のノードの稼働時間は一般に指数関数的配布に従います。多くの人は短期間でのみ利用可能で、数日や数ヶ月の間安定した滞在時間がほとんどありません。

は、実際にネットワークの90%を構成する長寿命のノードに適度に安定したコアを持つとします。絶えず存在しなくて存在しなくなるのと同じノードの10%がいくつかのオーバーヘッドトラフィックを引き起こすでしょうが、ネットワークを大いに害を与えません。 あなたはたくさんの鎮痛をしていますが、ほとんど影響を与えません。

ノードの母集団の10%が10分後にオフラインになっていて、非アクティブなプールからのブランドのノードセットに置き換えられている場合は、10分ごとに冗長性の10%を緩めます。ノード間のデータ複製がそれに続いていないか、存在しないか、データさえ存在しない場合、データは指数関数的に減衰します。 あなたはまたたくさんの鎮痛剤を持っていますが、大きな影響を与えます。

どのようなシミュレーションが現実を最善の方法で反映するかを確信しています。私は最も現実的な制約が単純に潜在的なノードの固定プールを持っていると思います。それはDHT実装がインストールされているコンピュータです。

各ノードは、平均して平均している時間が経ってくる時間のプロファイルと、平均しているのか(それらの2つのパラメータは互いに部分的に相関しています。通常は持っていません)彼らはおそらくいつもオンになっているので、非常に長いダウンタイム。そして、各ノードはこれらのパラメータに独立して機能します。 現実の中でも、ここで簡単に見ることができるように、時刻も役割を果たします。 http: //dsn.tm.uni-karlsruhe.de/english/2936.php

それで...ロングストーリーの短い、いくつかのノードをランダムに走らせて殺したばかりで、影響は広く変わるので、DHTの回復力についての現実的な結果を与えません。

技術的な部分は、それらのすべてを同じJava VMで実行し、マルチスレッドまたは非ブロックIOを使用して、各インスタンスを別のインスタンスの実行のオーバーヘッドを別々のVMに縮小します。これはまたあなたがより現実的な方法で彼らの上および遡及をスケジュールすることを可能にするでしょう。

複数のIPSを単一のコンピュータに割り当てることができますので、IP / Port Countに基づいてコンピュータ上の2000部のノードを実行できるはずです。しかし、そのプロセスのリソース消費は最後のシステムでも最速のシステムでさえも堅調に推移します。

だからあなたはおそらく現実的に何かを得るためにコンピュータごとに数千ノードを持つネットワーク上でこれを実行する必要があるでしょう。

実際の実装を実行するのではなく、それ以上の数学的シミュレーションにリゾートします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top