Genkidamaに対する大きな期待と課題
ニコニコ動画をキャッシュで共有し、検索をDHTで行うGenkidamaがリリースされ、非常に大きな反響を得ているようだ。もしこのソフトウェアが大きなユーザ数を得るとすれば、特にOpenChordの実装がどの程度実ネットワーク上できちんと動くか検証できる。
ニコニコ動画のキャッシュを皆で共有するソフト「Genkidama」をリリースしまふ。
ここで、P2PとNATの専門家としての関心のある点を挙げていきたい。
□P2Pとしての興味の点
(1)DHTは部分一致検索が不得意だが、これをどう解決するか?ひとつの案としてSkipgraphのようなものを実装することが考えられる。
(2)OpenChordが実ネットワーク上でどの程度スケールするか?果たして数万レベルまでスケールするか?
(3)ユーザの参加・離脱が多いコンシューマサービスでOpenChordがきちんと動くか?具体的に言うとデータを複製するレプリケーションやChurn耐性(頻繁な参加/離脱に対する対策)がうまく動くか?
□NAT越えとしての興味の点
(1)UPnPを使えないユーザをポートフォワーディングなどをしないでケアするのか?例えばSkypeのようにリレーノードのような中継ノードを設けるようにするか?
(2)1つのルータに複数ユーザがいる場合にどのようにケアするか?
(3)DHT(Chord)のように数10本~数100本のTCPセッションを常時形成するようなサービスに対してUPnPの実装が本当に安定であるか?
とりあえず以上です。是非今後も開発をがんばって欲しい。

Comments
> UPnPについては実装がまちまちで、TCPのセッション数が形成できる数が機種によってまちまちなのです。(実際にはTCP処理というよりもUPnPによって形成できる最大マッピング数のこと。)
UPnP でのポートマッピングは、外部から内部への接続要求をどのクライアントへ転送するのか、という情報として使うだけなのかと思っていましたが、実装にはもっといろいろな処理が必要なんですね。誤解していました。
ご教授ありがとうございます。
Posted by: scalar_001 | 2009.05.04 at 05:27 PM
syuu1228さま
コメントありがとうございます。既にコメントがあるかもしれませんが、JavaならDHT実装としてOvererlay Weaverを使うという手もあります。開発者が日本人なのでフィードバックもしやすいですし、シミュレーションも楽です。またDHTのプロトコルを容易に変更できます。
scalar_001さん
ソフトの世界はやったもの勝ちですから、考えたらすぐ実装したほうがいいです。
・部分一致検索については了解
・UPnPについては実装がまちまちで、TCPのセッション数が形成できる数が機種によってまちまちなのです。(実際にはTCP処理というよりもUPnPによって形成できる最大マッピング数のこと。)
ですから、DHTで使うように数10セッションTCPがすべての端末において安定的に形成できるかは疑問です
Posted by: Tomo | 2009.04.30 at 05:36 AM
1年以上ほったらかしたら先に同コンセプトのプログラム発表されてこのザマだよ!(泣)。
□P2Pとしての興味の点
> (1)
キャッシュ要求時にそのキャッシュがあるかどうかを DHT で問い合わせるので、
部分一致検索はしないものと思われます。ニコニコ動画の URL なり動画 ID なり
ユニークキーがあるので。
□NAT越えとしての興味の点
>(3)
UPnP の実装と TCP の本数がどう関係するのか謎です。どのような懸念なのか
詳しい解説がほしいです。
UPnP は静的なポート割り当てと基本は同じ(と思っている)なので、
TCP の本数が関係するとすればそのルータの処理能力の部分かな、と思います。
Posted by: scalar_001 | 2009.04.29 at 02:31 PM
初めまして、ご紹介頂きありがとうございます、syuu1228です。
Skipgraphというものが有るんですね、恥ずかしながら知りませんでした。
Genkidamaとは関係ないプロジェクトでDHTに対して検索がかけられたらなぁと思っていたので、そちらで検討してみようかと思います。
OpenChordがちゃんと動くか?という点ですが、自分がやっている階層型DHTの研究にたまたま使っていて中身を知っていたからというだけの理由で使ってしまったので、実は一番疑問に思っている所です。
ちゃんとしたものにするには、ライブラリの全面差し替えやP2P部分の実装しなおしは必要だと思います。
実はあまりP2Pについて詳しく無いので、もしアドバイス頂ければ大変嬉しいです。よろしくお願い致します。
Posted by: syuu1228 | 2009.04.27 at 07:45 PM