分散ハッシュテーブル(DHT)

Similar documents
1 DHT Fig. 1 Example of DHT 2 Successor Fig. 2 Example of Successor 2.1 Distributed Hash Table key key value O(1) DHT DHT 1 DHT 1 ID key ID IP value D

スライド 1

ネーミング(1)

P2P SIP解説

ITRC meet 年 5 月 日, 名古屋大学 Overlay Weaver と その PlanetLab 上での運用 首藤一幸 ウタゴエ / NICT

スライド 1

スライド 1

Publish/Subscribe KiZUNA P2P 2 Publish/Subscribe KiZUNA 2. KiZUNA 1 Skip Graph BF Skip Graph BF Skip Graph Skip Graph Skip Graph DDLL 2.1 Skip Graph S

ID Z-Ordering 4) P2P P2P 2. Peer-to-Peer(P2P) P2P Gnutella ) BitTorrent 2) P2P (DHT:Distributed Hash Table) Chord 5) CAN(Content Adressable Network) 6

福岡大学人文論叢47-3

9_4.dvi

Microsoft PowerPoint - p2p-basic2006

PowerPoint Presentation

スライド タイトルなし

スライド 1

オープンソース・ソリューション・テクノロジ株式会社 会社紹介

はじめに

<31315F985F95B62D899C8CA98E8182D982A92E696E6464>

Table 1 Table 2

BIT -2-

スライド タイトルなし

IPSJ SIG Technical Report Vol.2014-IOT-27 No.14 Vol.2014-SPT-11 No /10/10 1,a) 2 zabbix Consideration of a system to support understanding of f

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

i Ceph

2006


untitled

事例紹介1

Agenda Scalability Availability CAP Theorem Scalability Availability Consistency BASE Transaction

ICDE’15 勉強会 R24-4: R27-3 (R24:Query Processing 3, R27 Indexing)

GET Vol.8

4名連記 P1-21

1.中山&内田 P1-9


intra-mart Accel Platform — IM-BloomMaker プログラミングガイド   初版  


WBT [6] [7] [8] [9] Web [1] WBT [2] [3] ipad PC ipad ipad ipad [4] QR QR [5] IC IC PDA IC PDA US-ASCII 4,296 QR IC IC IC QR QR QR A BB A A CC

Microsoft Word - 中間試験 その1_解答例.doc

スライド タイトルなし

Learning Bayesian Network from data 本論文はデータから大規模なベイジアン ネットワークを構築する TPDA(Three Phase Dependency Analysis) のアルゴリズムを記述 2002 年の発表だが 現在も大規模用 BN モデルのベンチマークと

_JANOG44_LINE_tsuchiya

ループ防止技術を使用して OSPFv3 を PE-CE プロトコルとして設定する

EPSON VP-1200 取扱説明書

平成20年度成果報告書

数理.indd

Windows2000 Edge Components V Edge Components V Java Edge Components

MIRACLE LoadBalancerを使用したネットワーク構成と注意点

Microsoft PowerPoint - algo ppt [互換モード]

トランスポート層 TCP輻輳制御(3.7)

2004

IETF RAMの動向

技術知識 11 ディスタンスベクターとリンクステート ディスタンスベクターとは 噂話が好きな奥様達による伝言ゲームである リンクステートとは 同じカーナビをつけた走り屋の集団である... 私の先輩の格言より * * * ルーティングプロトコルの仕組みに

23

Oracleセキュア・エンタープライズ・サーチ

2 key. 3

Microsoft PowerPoint - gazotokuron-IPTV.ppt

untitled

Interoperability Workshop

XML Consortium 2009/5/8 XML Consortium Enterprise2.0 アプリを支えるクラウド基盤としての Windows Azure XML コンソーシアム Web 2.0 部会 日立ソフト宮崎昭世 Microsoft MVP for Development Pl



mogiJugyo_slide_full.dvi


人事行政の運営状況等の公表(平成19年12月)(PDF)

IBM クラウド事例から考える OSS による企業向けクラウドの可能性 日本アイ ビー エム株式会社 Linux/OSS エバンジェリスト中井悦司 Feb. 27, IBM Corporation

P1: P2: P3: P4: P1 P3 API Scallop4SC API [3] P1 P2 Hadoop [4] HBase [5] Scallop4SC HBase HBase Key Value Hadoop Scallop4SC P3 P4 API 2 API API

コンテンツセントリックネットワーク技術を用いた ストリームデータ配信システムの設計と実装


Pamphlet

untitled

IPSJ SIG Technical Report Vol.2013-OS-127 No.2 Vol.2013-EMB-31 No /12/ SNS(Social Networking Service) SNS Friend News System Friend

15群(○○○)-8編

/9/ ) 1) 1 2 2) 4) ) ) 2x + y 42x + y + 1) 4) : 6 = x 5) : x 2) x ) x 2 8x + 10 = 0

EPSON エプソンプリンタ共通 取扱説明書 ネットワーク編

untitled

ありがとうございました

EPSON エプソンプリンタ共通 取扱説明書 ネットワーク編

公務員人件費のシミュレーション分析


橡hashik-f.PDF

198

ネットショップ・オーナー2 ユーザーマニュアル


1

新婚世帯家賃あらまし

05[ ]戸田(責)村.indd

新たな基礎年金制度の構築に向けて

中村隼大 鈴木秀和 内藤克浩 渡邊晃 名城大学理工学部愛知工業大学情報科学部

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

Microsoft PowerPoint _junki.pptx

PSCHG000.PS

プロセス

自律分散協調 pptx

AWSSummitTokyo2018

- 1 -

%

ID010-2

2

untitled


Transcription:

仮想化 DAY 最新テクノロジーセッション 分散ハッシュテーブル (DHT) InternetWeek 2009.11.26 14:30 15:50 株式会社ライブドア伊勢幸一

Agenda 1. DHT Summary 2. 代表的なアルゴリズム 3. Chordアルゴリズム 4. 性能 5. 実装

ちょっと自己紹介 1996 年 有限会社オン ザ エッジ 設立 2000 年東証マザーズに株式会社として上場 2002 年ライブドアから営業権を譲受 2003 年 エッジ株式会社 に社名変更 2004 年 株式会社ライブドア に社名変更 2007 年 ライブドアホールディングス に社名変更 ( 新 ) 株式会社ライブドアを設立 2008 年情報環境技術研究室を新設

ちょっと自己紹介 2008 年 4 月ネットワーク事業部内に 通信技術研究準備室として設立 2008 年 10 月情報環境技術研究室が新設 研究テーマ 次世代ネットワークアーキテクチュア P2P 配信技術オーバーレイネットワーク技術仮想化技術 論文発表電子情報通信学会 IA 研究会 クラウドシステムのための分散 URI 方式の評価 DHT 技術によるブログストレージの分散化と検索の実証実験

DHT Summary 分散ハッシュテーブル P2Pオーバーレイネットワーク Key-Valueペア分散探索技術 IDにConsistent-Hashを利用 スケールアウトしやすい

DHT Summary( ざっくりとしたイメージ ) ノードとデータを同じ空間にマッピング Key-Value を近接するノードにストア Key = Hello Value = World Hash( Hello ) 0xcafebeef Node = n1.livedoor.jp Hash( n1.livedoor.jp ) 0xcafebeff Put( Hello, World ) n1.livedoor.jp World Get( Hello ) n1.livedoor.jp

代表的なアルゴリズム ハッシュ空間の定義と探索方法による違い CAN (2001) N 次トーラス Tapestry, Pastry (2001 ) Plaxton Kademlia (2002) 二分木 Chord (2001) 環状 Koorde (2004) Chord 改 Broose (2004) Koorde+Kademlia 改 Skip Graph (2003) 厳密に言うとDHTではない この他にもいっぱい!

CAN Content Addressable Network 論文 A Scalable Content Addressable Network (2001 UCB & ATT) N 次元トーラス空間にノード ID とコンテンツ ID をマッピング 1/ d 探索ホップ数 = O( dn ) y X = Hash1( Hello ) = 0xE Y = Hash2( Hello ) = 0xC (0xF,0xF) D Put( Hello, World ) ノード D (0xC,0xC) C (0x9,0x9) (0xE,0xC) のコンテンツを A から探索 A C D (0xE,0xC) World A (0x4,0x4) B (0xC,0x4) x (0x0,0x0)

Pastry PlaxtonアルゴリズムによるDHT 論文 Scalable distributed object location and routing for large-scale peer-to-peer systems (2001 MS & Rice) Plaxton アルゴリズム ID は基数 (b) と桁数 (n) により構成 ( 例 3 桁 4 進数 ) 023 ノード abc の経路表 abc 112 0-23 1-12 2-23 3-03 303 a0-1 a1-0 a2-1 a3-2 112 223 332 ab0 ab1 ab2 ab3 Pastryアルゴリズム O( b log N) Plaxtonテーブルとリーフセット ネイバーフッドセットの組み合わせ

Kademlia( カデムリア ) 論文 A Peer-to-peer information System Based on the XOR Metric (2002 NYU) 二分木構造のID 空間 XORを空間の距離として定義 距離 = XOR( ノードID Key) ノードA = 001 ノードB = 010 Key = 100 XOR(001, 100) = 010 = 2 XOR(010, 100) = 001 = 1 ノードBにValueをストアプレフィックス一致長によるルーティングテーブル 000 001 010 011 100 101 110 111

Chord 論文 A Scalable Peer-to-Peer Lookup Service for Internet Applications (2001 MIT) 160bit SHA-1 によるハッシュ化 1 次元環状空間にノードIDをマッピングスキップリストによる探索 (Finger Table) O(log N)

Chord Finger Table (mビット空間の場合 m 個のエントリ ) i 1 m 1. finger[i].start = ( n + 2 ) mod 2 2. Interval ( 範囲 ) = finger[i].start interval < finger[i+1].start 3. successor (id) = interval 内の一番近いノードID 3 ビット空間での例 ( 原論文より抜粋 )

Chord 探索 ノード3がキー 1を探す 1. ノード3のFinger Tableから [7,3) のsuccessorを見つける 2. ノード0のFinger Tableから [1,2) のsuccessorを知りノード3に返す 3. ノード3はノード1にキー 1をリクエストする 3 ビット空間での例 ( 原論文より抜粋 )

探索シーケンスの擬似コード // ノード n 上で id の sucecssor を探す n.find_successor(id) { // ノード 3 上のプロシージャを実行 n' = find_predecessor(id); // id の predecessor を探す この場合 n' はノード 0 return n'.successor; // ノード n' = 0 の finger table から id の successor ノード ID を返す } // ノード n で id の predecessorを探す n.find_predecessor(id) { n' = n; // まず 自分から while(id! (n', n'.successor]) { // finger table 内のエントリで id が intervalに入るまで n' = n'.closest_preceding_finger(id); // id に最も近いノードIDを n' とする } return n'; // finger table 内で最もidに近いpredecessorを見つけた! } // id が interval 内に含まれるエントリを探す n.closest_preceding_finger(id) { // 自分のfinger tableをみるよ! for i = m downto 1 { // finger table の下の方から順番に if(finger[i].node (n, id)) { // successorノードが自分と id との間にあれば return finger[i].node; // そのsuccessorノードIDを返す } return n; // 無ければ それは自分だよ } }

性能 SOD(Secure Overlay DHT) ノード数固定 100 ノードでのレスポンス性能 800 リクエスト 2400 リクエスト 0.4 0.4 0.35 0.35 0.3 0.3 0.25 0.25 0.2 0.2 0.15 0.15 0.1 0.1 0.05 0.05 0 0

性能 SOD(Secure Overlay DHT) 複数の AS を跨いで DHT を構成 リクエスト 400 リクエスト 2000 0.4 0.4 0.35 0.35 0.3 0.3 0.25 0.25 0.2 0.2 0.15 0.15 0.1 0.1 0.05 0.05 0 0

性能 SOD(Secure Overlay DHT) MySQL と BambooDHT との比較 0.035 [SEC] 0.030 MySQL(index) 0.025 SOD 0.020 SOD 0.015 0.010 bamboodht 0.005 リクエスト数 [N] 0.000 0 200 400 600 800 1000 1200 1400

代表的なアルゴリズム ( 捕捉 ) CAN Tapestry, Pastry (Microsoft) Kademlia (BitTorrent) Chord Koorde Broose Skip Graph (Yale & Google) P2P 教科書絶賛発売中!(2008.1.1 発行 )

実装 OverlayWeaver (Java) Chord, Kademlia, Koorde, Pastry, Tapestry http://overlayweaver.sourceforge.net/ Bamboo DHT(Java) Pastry http://bamboo-dht.org/ OpenChord (Java) Chord http://open-chord.sourceforge.net/ Chimera(C) Tapestry http://current.cs.ucsb.edu/projects/chimera/ libtorrent (C++) Kademlia http://www.rasterbar.com/products/libtorrent/ ブログ 驟雨のカーネル探検隊 ( 只今遭難中 w オープンソースな DHT 実装まとめ http://d.hatena.ne.jp/syuu1228/20091015/1255577562

まとめ 1. 大規模 P2Pオーバレイネットワークの構築が可能 2. データ (Key-Valueペア) 量に依存しない探索性能 3. 揺らぎが大 ネットワーク距離の影響を受けやすい 4. 範囲検索ができない (Skip Graphはサポート ) 5. ノードの参加離脱に対してフレキシブル DHTとKVS DHT KVS 経路長 Multi-hop No-hop トポロジ情報 部分的に把握 全体を把握 適用規模 大規模 小規模

終了