何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。 P2P、特にDHTの前提知識が無い状態から、オリジナルDHTアルゴリズムを実装・評価できるようになるまでの学習方法と参考資料をまとめました。 基本的なアルゴリズムの仕組みから、実装評価に用いるツールキットの使い方までを短期間で学習することが出来ます。 「P2Pに関する卒論を書こうと思っている人」や「P2Pアプリケーションの開発前に、アルゴリズムをテストしたい人」、「なんとなくP2Pアルゴリズムに興味が出た人」などにぴったりだと思います。また、研究室での後輩教育用資料にするのも良いと思います。実際に使いましたし。 ここで紹介する資料一覧は以下の通りです。 資料1:「ChordアルゴリズムによるDHT入門」 資料1ーオプション1:「DHTアルゴリズムSymphony
分散ハッシュテーブル - Wikipedia DHTは、ピュアP2Pであってもネットワーク負荷はそれほど上がらず、ネットワーク上のコンテンツを漏れなくかつ高速に探索することを可能にする。従来のピュアP2Pで採用されていた通信では、数10万ピアぐらいが限界だとされているが、DHTを使うと数10億ピアを探索範囲とすることが可能となる。しかし、実装がむずかしいことが欠点となる。 DHTの欠点は、一般的に完全一致探索しか行えないことである。特に正規表現のような複雑な検索をDHTのみで実現することは不可能である。 代表的なDHTのアルゴリズムを説明している日本語文献を探してみた. Chord この節では,DHT の代表的なアルゴリズムであるChord について説明する.Chordのハッシュ空間上での距離の定義は,ハッシュ値の差の絶対値である.図3.5のように,データ保有ノード (図中の青点) を,そ
============================================================== 独自マークアップの定義 [*image*] : 画像の希望 [*table*] : 表の希望('|'が列区切り) [*footnote*] : 脚注 [*refer*] : 別章への参照(岩田さんの記事に依存) [*backnum*] : 過去の号に記事があれば参照を追加してほしい箇所 ============================================================== 構成 - 探索技術の概要 - Gnutella探索の説明 - Freenet探索の説明 - Chord(DHT)探索の説明 - Kademlia(DHT)探索の説明 となっています。 分量が予定(4ページ)の倍近くあるので、適当に削ってください。 ======
scale outの技術 首藤 一幸 Last-updated: January 5, 2010 注: このページの文章は以下の記事の元原稿です。 首藤一幸, "スケールアウトの技術", クラウドの技術, pp.88-101, (株)アスキー・メディアワークス, ISBN978-4-04-868064-6, 2009年 11月 6日 アスキー・メディアワークス社の 書籍紹介ページ Amazon.co.jp の ページ 首藤一幸, "スケールアウトの技術", UNIX magazine 2009年 4月号, pp.78-91, (株)アスキー・メディアワークス, 2009年 3月 18日 データベースに求められる性能を試算したところ、 十台、百台…数万台のサーバが必要になった。 クラウドを構築する側はこういう問題に直面し、解決しようとしてきた。 台数に比例した性能を引き出すこと、つまりsca
About libjingle libjingle is a collection of open-source C++ code and sample applications that enables you to build a peer-to-peer application. The code handles creating a network connection (through NAT and firewall devices, relay servers, and proxies), negotiating session details (codecs, formats, etc.), and exchanging data. It also provides helper tasks such as parsing XML, and handling network
並行言語であるErlangでPeer-to-Peer Network技術の一つである分散ハッシュテーブルを実装してみたところ,わずか1000行程度で実現できました.ノードが頻繁に出たり入ったりする,いわゆるchurn下でもそれなりの性能が出せたので,SourceForge.netで公開してみます.興味のある方はどうぞ. http://sourceforge.net/projects/ermdia/ 内部アルゴリズムはKademliaと呼ばれるものを利用しています.BitTorrent等でおなじみのアルゴリズムですが,データのput/getなどの通常のメッセージの交換時にルーティングテーブルをアップデートするため,ルーティングテーブルの維持コストがChord等に比べて低いという特徴があります.実装もそれなりに簡単で,過去にSymphonyと呼ばれる分散ハッシュテーブルを実装したのですが,それ
Overlay Weaver はオーバレイ構築ツールキットです。 アプリケーション開発に加えて、 オーバレイのアルゴリズム設計もサポートします。 アプリケーション開発者に対しては、 分散ハッシュ表 (DHT) やマルチキャストといった高レベルサービスに対する 共通 API を提供します。 この API を用いることで、 特定のトランスポートプロトコル、データベース、ルーティングアルゴリズム に依存しないアプリケーションを開発できます。 Overlay Weaver は、 ルーティングアルゴリズムとして Chord、Kademlia、Koorde、Pastry、Tapestry、FRT-Chord の実装を提供しています。 ルーティング層の分割によって、 これらのアルゴリズムをたかだか数百ステップで実装することが可能となりました。 ルーティング層は高レベルサービスの下位に位置し、 ルーティン
「MSN Messenger」と連係可能で、対象ユーザーを限定できるフォルダ共有機能やレジューム対応のファイル転送機能を備えるP2P通信ソフト「Amembo」v0.1.0.12が、14日に公開された。フリーソフトで、編集部にてWindows XPで動作確認した。現在、作者のホームページからダウンロードできる。 「Amembo」は、インターネット経由でP2P通信を行い、複数ユーザーに対して任意のローカルフォルダを“共有フォルダ”として公開できるソフト。本ソフトは「MSN Messenger」や「Windows Messenger」のメニューに登録し、メッセンジャーで会話中の相手や、一覧から選んだユーザーと通信を開始することが可能。そのため「MSN Messenger」などでチャットをしながら、ファイル共有を行いたいときに本ソフト呼び出す、といった連係を行える。 本ソフトの初回起動時には、本ソ
A fascinating paper from David Blackburn, a Harvard PhD student, on the economics of P2P file-sharing concludes that it does indeed depress music sales overall. But the effect is not felt evenly. The hits at the top of the charts lose sales, but the niche artists further down the popularity curve actually benefit from file-trading. Blackburn does a little mathematical magic to simulate what would
P2P(peer to peer)は違法ファイルをやりとりする技術――。そんな誤ったイメージを一新する可能性を秘めたP2Pシステムが多くのユーザーで使われ始めている。米国のプログラマ,ブラム・コーエン氏が開発した「BitTorrent」(ビットトレント)である。 米国ではすでに,無料のデスクトップLinuxやNASA製の3次元地球儀など,さまざまなソフトの配布に使われている。仕様が公開されているので,BitTorrent準拠のソフトもいくつか登場。国内でも,コミュニティ・サイト「dream city」を運営するエルゴ・ブレインズが動画配信サービス用にBitTorrentを活用する予定だ。 BitTorrentは,WinnyやWinMXなどのP2Pファイル共有ソフトと根本的に目的が異なる。ユーザー間でファイルを共有するためのものではなく,コンテンツ・ホルダーがファイルを配信するためのしくみな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く