旧・無印吉澤

昔はてなダイアリーに書いていた記事のアーカイブです

Project JXTA - loosely-coupled DHT with limited-range walker

http://www.shudo.net/article/JXTA-DHT-20040408/

P2P today経由。JXTA 2.0からRendezvous Peerの動作に採用されたDHT(Distributed Hash Tables)についての、首藤 一幸さんのプレゼン資料です。

Rendezvous Peerがadvertisementをどうやって分散するのか、これを読んでなんとなくわかった気がします。例えば、R1からR4までの4つのRendezvous PeerをPeer ID順が小さい順に並べるとR1, R2, R3, R4になるときは、広告のAdvertisement ID(128ビット)をハッシュ関数にかけた結果によって

  • 0〜2^32-1 → R1とその前後(R4,R2)
  • 2^32〜2^64-1 → R2とその前後(R1,R3)
  • 2^64〜2^96-1 → R3とその前後(R2,R4)
  • 2^96〜2^128-1 → R4とその前後(R3,R1)

に広告へのインデックスを保存する。こうやってハッシュ関数の出力結果をRendezvous Peerの数で分割することで、インデックスを集中管理するサーバがいなくても(ハッシュ関数さえ優秀なら)高速検索可能な形で情報を分散配置できると。なるほど……。確かに、単純で効果的な方法に見えます。

分散ハッシュは難しそうなのでさけてたんですが、熱心に分散ハッシュの啓蒙活動をされているTomo's Hotline辺りから辿ってちょっと勉強した方がいいかも……。