- 64 名前:461 ◆Of8OpFdQADOA mailto:sage [2014/05/03(土) 00:39:51.83 ID:t3CXZaAV]
- >>57
私の実装の範囲で説明します。 >参加ノードが時々刻々と変化するなかで、ハッシュ値に対してどのノードにキャッシュを置くのか?どのノードからキャッシュを取るのか、疑問は尽きない‥ ≪キャッシュ≫の意味がよく分かりかねます。 仮に≪DHTに保存されたデータ≫だとしてお答えします。DHTのアルゴリズムとしてChordを採用した場合、データに対して保存ノードは自動的に決定されます。詳しくはChordについてご参照ください。 >第一、単純な DHT だったら、ある投稿単位を得るために、その投稿単位を所持しているノードに集中的にアクセスが集中するのでは? 現時点の私の実装ではその通りです。 回避策として、多重にハッシュ関数を適用することによるラウンドロビンが考えられます。(Chordを用いているとします) 通常ではDHTに保存されるデータ:Vのアドレス:Kは、ハッシュ関数:Hを用いてK=H(V)として決定します。 ここでK[n]={H(V), H(H(V)), ... }で表せるように複数のアドレスを生成し、それぞれのアドレスに対応する複数のノードにデータを保存します。 データを読み出す際は、Kに上原付でランダムな回数だけHを適用し、得られたアドレスにデータを請求します。 これによりネットワーク負荷は分散されますがストレージの負荷は全体として増加します。 掲示板の機構とDHTの機構とは分離されるので、掲示板側からはこれを意識する必要はありません。 今考えたアルゴリズムなので瑕疵があるかもしれません。ご了承ください。
|

|