- 2ちゃんねる互換P2P匿名掲示板の実装を考える 1
90 :デフォルトの名無しさん[sage]:2014/05/06(火) 07:28:02.05 ID:/sGQ2PwJ - 大抵のDHTアルゴリズムには、特定のノードが退出してもそのノードの担当範囲のデータが消えないようにする仕組みがあるよ
|
- 2ちゃんねる互換P2P匿名掲示板の実装を考える 1
92 :デフォルトの名無しさん[sage]:2014/05/06(火) 13:05:02.81 ID:/sGQ2PwJ - まず、DHTでは基本的にデータを複製していく点に留意。
>>91の例の場合、ノードCからノードBへ投稿Aそのものがコピーされる。 どのノードが持っているか、という情報を転送していくのはWinny方式だから勘違いせぬよう。
|
- 2ちゃんねる互換P2P匿名掲示板の実装を考える 1
93 :デフォルトの名無しさん[sage]:2014/05/06(火) 13:39:18.25 ID:/sGQ2PwJ - DHT上に保存したいデータをA、そのデータのハッシュ値をH(A)、Aを担当するノードをNとする。
取り敢えず、自分の知ってるChordとKademliaってアルゴリズムを例にする。 Chordの場合、Nはその前(ノードID的に)のノードN'、N''、…へAを複製する。 円状のネットワークを構成するアルゴリズムだから、Nが抜けると(例えば)N'が次のNになるので、Aは消えない。 Kademliaの場合、Nに近い幾つかのノード(N自体が入っているとは限らない)へAをばら撒く。 各ノードは、定期的に自分の持つデータをNに近い幾つかのノードへばら撒く。 Aを取得する時も、Nに近い幾つかのノードにリクエストを送る。 データはひたすら複製されていくから、いずれかのノードが抜けても問題ないワケ。 円状のきれいなネットワークを構築するChordに比べると力技っぽいけど、実装が簡単らしいね。
|