SlideShare a Scribd company logo
第4回 分散システム本読書会
名前付け / Naming
@nishio_dens
2013/04/27	
   第4回 分散システム本読書会	
  
本章の目標
名前と識別子から、いかにしてアドレスを	
  
解決するかが本章の重要なテーマ	
  
	
  
•  様々な名前解決の仕組みを理解する	
  
–  フラットな名前から、どのようにしてエンティティを
見つけるかを理解する	
  
–  構造化された名前から、どのようにしてエンティティ
を見つけるかを理解する	
  
–  分散システムでよく用いられる属性ベース名前付けを
理解する	
  
2013/04/27	
   第4回 分散システム本読書会	
   2	
  /	
  25	
  
5.1 名前・識別子・アドレス
•  名前	
  
–  エンティティ(ホストやファイル等)を参照するため
に使われるビット列、または文字列	
  
	
  
•  識別子	
  (Identifier	
  /	
  ID	
  )	
  
–  エンティティを一意に識別するための名前	
  
	
  
•  アドレス	
  
–  アクセスポイントの名前	
  
–  アクセスポイントとは?	
  
•  エンティティにアクセスする際に利用するエンティティ	
  
2013/04/27	
   第4回 分散システム本読書会	
   3	
  /	
  25	
  
ヒューマンフレンドリーな名前
•  人間にとって扱いやすいように作られた名前を
ヒューマンフレンドリーな名前と呼ぶ	
  
	
  
•  例)	
  
–  ファイル名	
  
•  UNIXの場合、255文字以内の文字列をユーザが定義可能	
  
–  ドメイン名
•  DNSではドメイン名からIPアドレスを検索	
  
•  ドメイン名は人間が覚えやすい	
  
2013/04/27	
   第4回 分散システム本読書会	
   4	
  /	
  25	
  
5.2 フラットな名前付け
•  フラットな名前	
  
–  アクセスポイントを特定するような情報を含まない名前のこと	
  
	
  
•  フラットな名前からどのようにしてエンティティを	
  
特定するか?	
  
–  5.2.1	
  ブロードキャストとマルチキャスト	
  
–  5.2.1	
  転送ポインタ	
  
–  5.2.2	
  ホームベースアプローチ	
  
–  5.2.3	
  分散ハッシュテーブル	
  
–  5.2.4	
  階層的アプローチ	
  
2013/04/27	
   第4回 分散システム本読書会	
   5	
  /	
  25	
  
5.2.1 ブロードキャストとマルチキャスト
•  エンティティの識別子を含んだメッセージを全員に	
  
ブロードキャストして探す	
  
•  アドレス解決プロトコル(ARP)がこの手法を利用	
  
•  問題点	
  
–  ネットワークが大きくなると要求メッセージだけで帯域を浪費して
しまう	
  
	
  
マルチキャスト(特定のグループにのみメッセージを送る方式)
を利用することで、ネットワーク帯域浪費を押さえられる
2013/04/27	
   第4回 分散システム本読書会	
   6	
  /	
  25	
  
IP:	
  192.168.10.2	
  は	
  
誰ですか?
私です!
5.2.1 転送ポインタ
•  アドレスが変わりやすいモバイルエンティティを特定するための	
  
方法	
  
•  エンティティがAからBに移動する際に、Bの位置を参照する	
  
ポインタをAに残しておく	
  
•  問題点	
  
–  特別な工夫をしない限り、チェーンが長くなる	
  
–  エンティティの特定が必要な期間、チェーンを保持する必要がある	
  
–  リンクの障害を受けやすい	
  
	
  
スケーラビリティに問題あり!	
  
2013/04/27	
   第4回 分散システム本読書会	
   7	
  /	
  25	
  
A
BいつもAにアクセス
すれば良い
5.2.2 ホームベースアプローチ(1)
•  大規模ネットワークにおいて効率的にモバイルエンティティの特定
をサポートする方法	
  
•  エンティティの現在位置を保持するホーム位置(home	
  location)	
  を	
  
用いる	
  
•  モバイルIP(下図)は、ホームベースアプローチの後続の例	
  
	
  
2013/04/27	
   第4回 分散システム本読書会	
   8	
  /	
  25	
  
5.2.2 ホームベースアプローチ(2)
•  ホームベースアプローチの欠点	
  
–  固定されたホーム位置を用いること	
  
	
  
	
  
•  問題点	
  
–  ホーム位置が変わってしまった場合、エンティティとの通信が
不可能になる可能性がある	
  
–  モバイルエンティティと通信するためには、最初にホームと通
信する必要がある	
  
•  ホームが、モバイルエンティティと全く異なる場所にあった場合は
通信遅延が増大する	
  
•  クライアントが日本、相手のモバイルエンティティが日本にいて
ホームがアメリカにあると考えると。。。	
  
2013/04/27	
   第4回 分散システム本読書会	
   9	
  /	
  25	
  
5.2.3 分散ハッシュテーブル(DHT)
•  識別子(ID)に関連付けられたエンティティのアドレス	
  
解決を、DHTに参加しているノード同士で行う	
  
–  アドレス解決のための特別なエンティティを用意する必要が	
  
ないため、スケールする	
  
•  DHTのアルゴリズム	
  
–  Chord	
  (次ページで仕組みを説明)	
  
–  CAN,	
  Pastry,	
  Tapestry,	
  etc…	
  
ChordはDHTの最も有名なアルゴリズム	
  
2013/04/27	
   第4回 分散システム本読書会	
   10	
  /	
  25	
  
5.2.3 Chord (1)
•  データは誰が持つ?	
  
–  データとノードにIDを割り当てる	
  
–  ID割当にはmビットの識別子空間を持ったhash関数を用いる	
  
–  データとノードのIDをhashを用いて決める	
  
–  例)	
  
•  Node2 のID
–  hash( Node2 ) = 66
•  データA のID
–  hash (データA) = 41
–  kというキーを持つデータは、識別子
idが id >= k となる最初のノードが
保持する
–  このノードをサクセッサ
( successor )と呼ぶ
右図ではデータA のサクセッサはNode2
2013/04/27	
   第4回 分散システム本読書会	
   11	
  /	
  25	
  
ノード名	
  (	
  ID	
  )
図の丸がノード、四角がデータ	
  
5.2.3 Chord (2)
•  データをどのように探す?	
  
–  各ノードは自身の近接ノードについての情報(	
  successor,	
  
predecessor)	
  の情報を持っている	
  
–  単純に	
  successor	
  をたどっていけば、データを見つけられる	
  
–  線形アプローチは明らかにスケーラブルではない	
  
	
  
	
  
	
  
	
  
	
  
	
  
フィンガーテーブルを利用することで、検索効率を改善	
  
2013/04/27	
   第4回 分散システム本読書会	
   12	
  /	
  25	
  
5.2.3 Chord (3)
•  フィンガーテーブル	
  
–  最大m個のエントリを保持	
  (	
  m	
  =	
  識別子空間のビット数)	
  
	
  
•  ノードpのi番目のFinger	
  
	
  
•  右図Node1	
  の	
  Finger	
  Table	
  
–  m	
  =	
  5	
  	
  なので、Fingerを5個持つ	
  
	
  
2013/04/27	
   第4回 分散システム本読書会	
   13	
  /	
  25	
  
5.2.3 Chord (4)
•  ノード1が k=26 を解決する手順
1.  ノード1にて、
FT[5] <= k < FT[1]
なので、ノード5に要求を送る
2.  ノード18 にて、
FT[2] <= k < FT[3]
なので、ノード20 に要求を送る
3.  ノード20にて、
FT[1] <= k < FT[2]
なので、ノード21に要求を送る
4.  ノード21にて、kのsuccessorは
ノード28だと知っているので、
28にデータを問い合わせる
	
  
フィンガーテーブルを用いると、システムを構成するノード
をN個として、O(logN)	
  ステップでデータを発見できる!	
  
	
  
2013/04/27	
   第4回 分散システム本読書会	
   14	
  /	
  25	
  
ネットワーク近傍性の問題
•  Chordの問題点	
  
–  アンダーレイネットワークを考慮していない	
  
•  問題の解決策	
  
–  近傍ルーティング	
  
–  近傍近隣ノード選択	
  
2013/04/27	
   第4回 分散システム本読書会	
   15	
  /	
  25	
  
日本
アメリカ
日本
アメリカ
5.2.4 階層的アプローチ (1)
•  特徴	
  
–  ネットワークはドメインの集合に分割される	
  
–  最下位のドメインはリーフドメインと呼ばれる	
  
–  ディレクトリノードは、ドメイン内のエンティティの情報を	
  
持っている	
  
DNSと同じ構造	
  
2013/04/27	
   第4回 分散システム本読書会	
   16	
  /	
  25	
  
5.2.4 階層的アプローチ (2)
•  ノード情報が見つかるまで、親に要求を転送しながら	
  
エンティティを探す	
  
•  最悪の場合は、ルートノードまで探索が続く
2013/04/27	
   第4回 分散システム本読書会	
   17	
  /	
  25	
  
5.3 構造化された名前付け
•  人間が読みやすい名前からなる構造化された名前	
  
•  名前空間	
  
–  分散システムにおける名前は、共通的に参照される名前空間で
管理される	
  
–  名前空間は、リーフノード、ディレクトリノードからなるラベル
付き有向グラフで表現される	
  
	
  
–  リーフノード	
  
•  出力辺を持たない	
  
	
  
–  ディレクトリノード	
  
•  出力辺を複数持つ	
  
•  ラベル付けされている
2013/04/27	
   第4回 分散システム本読書会	
   18	
  /	
  25	
  
5.3.2 名前解決
•  名前空間を使って、パス名が与えられたときに、その名前に
よって参照されるノードが持つ情報を調べること	
  
	
  
•  クロージャメカニズム	
  
–  どのように、どこから名前解決を開始するかを知ること	
  
•  リンクとマウント	
  
–  別名(alias)の使用は、名前解決と強く関連している	
  
–  別名(alias)とは?	
  
•  同じエンティティに対する	
  
異なる名前	
  
–  別名を実現する方法	
  
•  ハードリンク (前ページ図)	
  
•  シンボリックリンク(右図)	
  
	
  
2013/04/27	
   第4回 分散システム本読書会	
   19	
  /	
  25	
  
ファイルシステムのマウント
•  異なる名前空間を参照できる	
  
–  異なる名前空間のディレクトリノードの識別子を保存
し、そこで異なる名前空間を参照できる	
  
2013/04/27	
   第4回 分散システム本読書会	
   20	
  /	
  25	
  
5.3.3 名前空間の実装
•  名前空間の分散	
  
–  大規模な分散システムの名前空間は、通常階層的に構成される	
  
–  [Cheriton	
  and	
  Mann,	
  1989]	
  は、以下の3つの層に分割した	
  
–  グローバル層	
  
•  ルートノードと論理的に近いディレクトリノードで形成される	
  
•  ディレクトリテーブルの内容がほとんど書き換えられない、安定性がある	
  
	
  
–  部門管理層	
  
•  1つの組織の中で一緒に管理されるディレクトリノードによって形成される	
  
•  グローバル層のノードよりは変化が多いが、比較的安定している	
  
	
  
–  マネージャ層	
  
•  よく変化する可能性があるノードから成り立つ	
  
•  ローカルネットワークのホストに相当するノードが、この層に属する	
  
2013/04/27	
   第4回 分散システム本読書会	
   21	
  /	
  25	
  
DNSの名前空間
2013/04/27	
   第4回 分散システム本読書会	
   22	
  /	
  25	
  	
  
項目 グローバル層 部門管理層 マネージャ層
地理的スケール 世界 組織 部課
ノード総数 少ない 多い 膨大
探索の応答時間 秒 ミリ秒 即座
更新の伝播 遅い 早い 早い
レプリカの数 多数 なし	
  /	
  ごくわずか なし
キャッシュの有効性 有効 有効 場合による
名前解決の実装 (1)
•  反復名前解決	
  (左図)	
  
–  利点)	
  名前サーバの負荷が(再帰的な方法に比べて)少なくてすむ	
  
–  欠点)	
  通信コストが大きくなる場合がある	
  
•  再帰名前解決	
  (右図)	
  
–  利点)	
  結果のキャッシュが効率的になる	
  /	
  通信コストが減少する	
  
–  欠点)	
  名前サーバに高い性能が要求される	
  
	
  
2013/04/27	
   第4回 分散システム本読書会	
   23	
  /	
  25	
  
名前解決の実装 (2)
•  長距離の通信の場合	
  
–  再帰名前解決は長距離通信が1回	
  
–  反復名前解決は長距離通信が3回	
  
	
  
•  名前空間のグローバル層の名前サーバは反復名前解決のみサポート
2013/04/27	
   第4回 分散システム本読書会	
   24	
  /	
  25	
  
分散型DNSの実装
•  DNSのスケーラビリティ	
  
–  上位レベルのノードほど、下位レベルのノードに比べて多くの
要求を受信する	
  
–  キャッシュを使うことで、現状この問題を回避している	
  
	
  
•  分散ハッシュテーブル(DHT)を用いたDNSの実装	
  
–  CoDoNS	
  [	
  Ramasubramanian	
  and	
  Sirer,	
  2004a]	
  にて検討されている	
  
	
  
–  利点	
  
•  DHTベースの実装にマッピングすることで、スケーラビリティの問題を解決	
  
–  欠点	
  
•  名前構造を失っている	
  
–  ある特定のドメイン内のすべての子を探索することが困難	
  
–  DHTでは範囲検索を行うのが難しい	
  
2013/04/27	
   第4回 分散システム本読書会	
   25	
  /	
  25	
  

More Related Content

PDF
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
PDF
【論文紹介】 Attention Based Spatial-Temporal Graph Convolutional Networks for Traf...
PPTX
第2章アーキテクチャ
PDF
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PDF
実装して理解するLINE LoginとOpenID Connect入門
PPTX
差分プライバシーとは何か? (定義 & 解釈編)
PDF
大規模グラフアルゴリズムの最先端
PDF
Java8から17へ
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
【論文紹介】 Attention Based Spatial-Temporal Graph Convolutional Networks for Traf...
第2章アーキテクチャ
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
実装して理解するLINE LoginとOpenID Connect入門
差分プライバシーとは何か? (定義 & 解釈編)
大規模グラフアルゴリズムの最先端
Java8から17へ

What's hot (20)

PDF
演習II.第1章 ベイズ推論の考え方 Part 2.スライド
PDF
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
PPTX
Introduction to arm virtualization
PDF
何となく勉強した気分になれるパーサ入門
PDF
分散システム読書会 06章-同期(後編)
PDF
Spring Security 5.0 解剖速報
PDF
インターネットの仕組みとISPの構造
PPTX
最近の自然言語処理
PDF
SFUの話
PPTX
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
PPTX
Apache 2.4 新機能 “SSL編”
PDF
Jenkinsfileのlintで救える命がある
PPTX
一般化線形モデル
PDF
私とOSSの25年
PPTX
CatBoost on GPU のひみつ
PDF
学位論文の書き方メモ (Tips for writing thesis)
PDF
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
PPTX
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
PDF
Ansible 入門 #01 (初心者向け)
PPTX
【DL輪読会】Reflash Dropout in Image Super-Resolution
演習II.第1章 ベイズ推論の考え方 Part 2.スライド
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
Introduction to arm virtualization
何となく勉強した気分になれるパーサ入門
分散システム読書会 06章-同期(後編)
Spring Security 5.0 解剖速報
インターネットの仕組みとISPの構造
最近の自然言語処理
SFUの話
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
Apache 2.4 新機能 “SSL編”
Jenkinsfileのlintで救える命がある
一般化線形モデル
私とOSSの25年
CatBoost on GPU のひみつ
学位論文の書き方メモ (Tips for writing thesis)
配管流路の多目的最適化OpenFOAM+OpenMDAO(第28回オープンCAE勉強会@関西)
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
Ansible 入門 #01 (初心者向け)
【DL輪読会】Reflash Dropout in Image Super-Resolution
Ad

Viewers also liked (20)

PDF
Naming 2
PPTX
Distributed Systems 第1章 Introduction
PDF
分散システム読書会 13章-分散協調ベースシステム
PPTX
ChordアルゴリズムによるDHT入門
PPT
第2回 分散システム本読書会
PPTX
分散システム第7章(前半)
PPTX
Introduction to DHT with Chord
PPT
Ernst and Young
PPTX
Securing access inabyod-world-final-ext
DOCX
What are the keys to success
PPT
Science Eportfolio Powerpoint
PPT
Cacciatore: Läpinäkyviä, näkymättömiä, vaikeita? Pojan kriisin huomaaminen ja...
PPT
Hadoop, Big Data, and the Future of the Enterprise Data Warehouse
PPTX
Lo lcats
PPTX
เบาหวาน+~..
PDF
Play decide: Malaria
PPTX
Edtc 6340-66 copyright crash course alberto tudon 4th ed
PPTX
Evaluation Question 1: Part 3
PPT
(Ppt) mabel self directed learning after session 3
Naming 2
Distributed Systems 第1章 Introduction
分散システム読書会 13章-分散協調ベースシステム
ChordアルゴリズムによるDHT入門
第2回 分散システム本読書会
分散システム第7章(前半)
Introduction to DHT with Chord
Ernst and Young
Securing access inabyod-world-final-ext
What are the keys to success
Science Eportfolio Powerpoint
Cacciatore: Läpinäkyviä, näkymättömiä, vaikeita? Pojan kriisin huomaaminen ja...
Hadoop, Big Data, and the Future of the Enterprise Data Warehouse
Lo lcats
เบาหวาน+~..
Play decide: Malaria
Edtc 6340-66 copyright crash course alberto tudon 4th ed
Evaluation Question 1: Part 3
(Ppt) mabel self directed learning after session 3
Ad

Similar to Naming (20)

PDF
Hadoop book-2nd-ch3-update
PDF
Akkaで分散システム入門
PPTX
分散システム第7章(後半)
PPTX
秘密計算を用いた時系列情報の安全な集計方法
PDF
P2P 技術と Cloud コンピューティングへの応用
PPTX
Elasticsearch as a Distributed System
PDF
Guide to Cassandra for Production Deployments
PPT
ネットワーク研究の最前線
PDF
Data-Intensive Text Processing with MapReduce ch4
PPTX
地理分散DBについて
PPTX
共通語彙の構築の基本的な考え方と方法 〜研究データのために語彙・スキーマを作るには〜
PDF
大規模ネットワークの性質と先端グラフアルゴリズム
PDF
20110517 okuyama ソーシャルメディアが育てた技術勉強会
PDF
TokyoWebMining#18_nukamu
PDF
Scalable Cooperative File Caching with RDMA-Based Directory Management
PPTX
関数型言語&形式的手法セミナー(3)
PPTX
HDFSネームノードのHAについて #hcj13w
PDF
P2Pネットワークを利用した分散ファイルシステムの開発
PPT
Vldb2002 report-200210231500
Hadoop book-2nd-ch3-update
Akkaで分散システム入門
分散システム第7章(後半)
秘密計算を用いた時系列情報の安全な集計方法
P2P 技術と Cloud コンピューティングへの応用
Elasticsearch as a Distributed System
Guide to Cassandra for Production Deployments
ネットワーク研究の最前線
Data-Intensive Text Processing with MapReduce ch4
地理分散DBについて
共通語彙の構築の基本的な考え方と方法 〜研究データのために語彙・スキーマを作るには〜
大規模ネットワークの性質と先端グラフアルゴリズム
20110517 okuyama ソーシャルメディアが育てた技術勉強会
TokyoWebMining#18_nukamu
Scalable Cooperative File Caching with RDMA-Based Directory Management
関数型言語&形式的手法セミナー(3)
HDFSネームノードのHAについて #hcj13w
P2Pネットワークを利用した分散ファイルシステムの開発
Vldb2002 report-200210231500

Naming

  • 1. 第4回 分散システム本読書会 名前付け / Naming @nishio_dens 2013/04/27   第4回 分散システム本読書会  
  • 2. 本章の目標 名前と識別子から、いかにしてアドレスを   解決するかが本章の重要なテーマ     •  様々な名前解決の仕組みを理解する   –  フラットな名前から、どのようにしてエンティティを 見つけるかを理解する   –  構造化された名前から、どのようにしてエンティティ を見つけるかを理解する   –  分散システムでよく用いられる属性ベース名前付けを 理解する   2013/04/27   第4回 分散システム本読書会   2  /  25  
  • 3. 5.1 名前・識別子・アドレス •  名前   –  エンティティ(ホストやファイル等)を参照するため に使われるビット列、または文字列     •  識別子  (Identifier  /  ID  )   –  エンティティを一意に識別するための名前     •  アドレス   –  アクセスポイントの名前   –  アクセスポイントとは?   •  エンティティにアクセスする際に利用するエンティティ   2013/04/27   第4回 分散システム本読書会   3  /  25  
  • 4. ヒューマンフレンドリーな名前 •  人間にとって扱いやすいように作られた名前を ヒューマンフレンドリーな名前と呼ぶ     •  例)   –  ファイル名   •  UNIXの場合、255文字以内の文字列をユーザが定義可能   –  ドメイン名 •  DNSではドメイン名からIPアドレスを検索   •  ドメイン名は人間が覚えやすい   2013/04/27   第4回 分散システム本読書会   4  /  25  
  • 5. 5.2 フラットな名前付け •  フラットな名前   –  アクセスポイントを特定するような情報を含まない名前のこと     •  フラットな名前からどのようにしてエンティティを   特定するか?   –  5.2.1  ブロードキャストとマルチキャスト   –  5.2.1  転送ポインタ   –  5.2.2  ホームベースアプローチ   –  5.2.3  分散ハッシュテーブル   –  5.2.4  階層的アプローチ   2013/04/27   第4回 分散システム本読書会   5  /  25  
  • 6. 5.2.1 ブロードキャストとマルチキャスト •  エンティティの識別子を含んだメッセージを全員に   ブロードキャストして探す   •  アドレス解決プロトコル(ARP)がこの手法を利用   •  問題点   –  ネットワークが大きくなると要求メッセージだけで帯域を浪費して しまう     マルチキャスト(特定のグループにのみメッセージを送る方式) を利用することで、ネットワーク帯域浪費を押さえられる 2013/04/27   第4回 分散システム本読書会   6  /  25   IP:  192.168.10.2  は   誰ですか? 私です!
  • 7. 5.2.1 転送ポインタ •  アドレスが変わりやすいモバイルエンティティを特定するための   方法   •  エンティティがAからBに移動する際に、Bの位置を参照する   ポインタをAに残しておく   •  問題点   –  特別な工夫をしない限り、チェーンが長くなる   –  エンティティの特定が必要な期間、チェーンを保持する必要がある   –  リンクの障害を受けやすい     スケーラビリティに問題あり!   2013/04/27   第4回 分散システム本読書会   7  /  25   A BいつもAにアクセス すれば良い
  • 8. 5.2.2 ホームベースアプローチ(1) •  大規模ネットワークにおいて効率的にモバイルエンティティの特定 をサポートする方法   •  エンティティの現在位置を保持するホーム位置(home  location)  を   用いる   •  モバイルIP(下図)は、ホームベースアプローチの後続の例     2013/04/27   第4回 分散システム本読書会   8  /  25  
  • 9. 5.2.2 ホームベースアプローチ(2) •  ホームベースアプローチの欠点   –  固定されたホーム位置を用いること       •  問題点   –  ホーム位置が変わってしまった場合、エンティティとの通信が 不可能になる可能性がある   –  モバイルエンティティと通信するためには、最初にホームと通 信する必要がある   •  ホームが、モバイルエンティティと全く異なる場所にあった場合は 通信遅延が増大する   •  クライアントが日本、相手のモバイルエンティティが日本にいて ホームがアメリカにあると考えると。。。   2013/04/27   第4回 分散システム本読書会   9  /  25  
  • 10. 5.2.3 分散ハッシュテーブル(DHT) •  識別子(ID)に関連付けられたエンティティのアドレス   解決を、DHTに参加しているノード同士で行う   –  アドレス解決のための特別なエンティティを用意する必要が   ないため、スケールする   •  DHTのアルゴリズム   –  Chord  (次ページで仕組みを説明)   –  CAN,  Pastry,  Tapestry,  etc…   ChordはDHTの最も有名なアルゴリズム   2013/04/27   第4回 分散システム本読書会   10  /  25  
  • 11. 5.2.3 Chord (1) •  データは誰が持つ?   –  データとノードにIDを割り当てる   –  ID割当にはmビットの識別子空間を持ったhash関数を用いる   –  データとノードのIDをhashを用いて決める   –  例)   •  Node2 のID –  hash( Node2 ) = 66 •  データA のID –  hash (データA) = 41 –  kというキーを持つデータは、識別子 idが id >= k となる最初のノードが 保持する –  このノードをサクセッサ ( successor )と呼ぶ 右図ではデータA のサクセッサはNode2 2013/04/27   第4回 分散システム本読書会   11  /  25   ノード名  (  ID  ) 図の丸がノード、四角がデータ  
  • 12. 5.2.3 Chord (2) •  データをどのように探す?   –  各ノードは自身の近接ノードについての情報(  successor,   predecessor)  の情報を持っている   –  単純に  successor  をたどっていけば、データを見つけられる   –  線形アプローチは明らかにスケーラブルではない               フィンガーテーブルを利用することで、検索効率を改善   2013/04/27   第4回 分散システム本読書会   12  /  25  
  • 13. 5.2.3 Chord (3) •  フィンガーテーブル   –  最大m個のエントリを保持  (  m  =  識別子空間のビット数)     •  ノードpのi番目のFinger     •  右図Node1  の  Finger  Table   –  m  =  5    なので、Fingerを5個持つ     2013/04/27   第4回 分散システム本読書会   13  /  25  
  • 14. 5.2.3 Chord (4) •  ノード1が k=26 を解決する手順 1.  ノード1にて、 FT[5] <= k < FT[1] なので、ノード5に要求を送る 2.  ノード18 にて、 FT[2] <= k < FT[3] なので、ノード20 に要求を送る 3.  ノード20にて、 FT[1] <= k < FT[2] なので、ノード21に要求を送る 4.  ノード21にて、kのsuccessorは ノード28だと知っているので、 28にデータを問い合わせる   フィンガーテーブルを用いると、システムを構成するノード をN個として、O(logN)  ステップでデータを発見できる!     2013/04/27   第4回 分散システム本読書会   14  /  25  
  • 15. ネットワーク近傍性の問題 •  Chordの問題点   –  アンダーレイネットワークを考慮していない   •  問題の解決策   –  近傍ルーティング   –  近傍近隣ノード選択   2013/04/27   第4回 分散システム本読書会   15  /  25   日本 アメリカ 日本 アメリカ
  • 16. 5.2.4 階層的アプローチ (1) •  特徴   –  ネットワークはドメインの集合に分割される   –  最下位のドメインはリーフドメインと呼ばれる   –  ディレクトリノードは、ドメイン内のエンティティの情報を   持っている   DNSと同じ構造   2013/04/27   第4回 分散システム本読書会   16  /  25  
  • 17. 5.2.4 階層的アプローチ (2) •  ノード情報が見つかるまで、親に要求を転送しながら   エンティティを探す   •  最悪の場合は、ルートノードまで探索が続く 2013/04/27   第4回 分散システム本読書会   17  /  25  
  • 18. 5.3 構造化された名前付け •  人間が読みやすい名前からなる構造化された名前   •  名前空間   –  分散システムにおける名前は、共通的に参照される名前空間で 管理される   –  名前空間は、リーフノード、ディレクトリノードからなるラベル 付き有向グラフで表現される     –  リーフノード   •  出力辺を持たない     –  ディレクトリノード   •  出力辺を複数持つ   •  ラベル付けされている 2013/04/27   第4回 分散システム本読書会   18  /  25  
  • 19. 5.3.2 名前解決 •  名前空間を使って、パス名が与えられたときに、その名前に よって参照されるノードが持つ情報を調べること     •  クロージャメカニズム   –  どのように、どこから名前解決を開始するかを知ること   •  リンクとマウント   –  別名(alias)の使用は、名前解決と強く関連している   –  別名(alias)とは?   •  同じエンティティに対する   異なる名前   –  別名を実現する方法   •  ハードリンク (前ページ図)   •  シンボリックリンク(右図)     2013/04/27   第4回 分散システム本読書会   19  /  25  
  • 20. ファイルシステムのマウント •  異なる名前空間を参照できる   –  異なる名前空間のディレクトリノードの識別子を保存 し、そこで異なる名前空間を参照できる   2013/04/27   第4回 分散システム本読書会   20  /  25  
  • 21. 5.3.3 名前空間の実装 •  名前空間の分散   –  大規模な分散システムの名前空間は、通常階層的に構成される   –  [Cheriton  and  Mann,  1989]  は、以下の3つの層に分割した   –  グローバル層   •  ルートノードと論理的に近いディレクトリノードで形成される   •  ディレクトリテーブルの内容がほとんど書き換えられない、安定性がある     –  部門管理層   •  1つの組織の中で一緒に管理されるディレクトリノードによって形成される   •  グローバル層のノードよりは変化が多いが、比較的安定している     –  マネージャ層   •  よく変化する可能性があるノードから成り立つ   •  ローカルネットワークのホストに相当するノードが、この層に属する   2013/04/27   第4回 分散システム本読書会   21  /  25  
  • 22. DNSの名前空間 2013/04/27   第4回 分散システム本読書会   22  /  25     項目 グローバル層 部門管理層 マネージャ層 地理的スケール 世界 組織 部課 ノード総数 少ない 多い 膨大 探索の応答時間 秒 ミリ秒 即座 更新の伝播 遅い 早い 早い レプリカの数 多数 なし  /  ごくわずか なし キャッシュの有効性 有効 有効 場合による
  • 23. 名前解決の実装 (1) •  反復名前解決  (左図)   –  利点)  名前サーバの負荷が(再帰的な方法に比べて)少なくてすむ   –  欠点)  通信コストが大きくなる場合がある   •  再帰名前解決  (右図)   –  利点)  結果のキャッシュが効率的になる  /  通信コストが減少する   –  欠点)  名前サーバに高い性能が要求される     2013/04/27   第4回 分散システム本読書会   23  /  25  
  • 24. 名前解決の実装 (2) •  長距離の通信の場合   –  再帰名前解決は長距離通信が1回   –  反復名前解決は長距離通信が3回     •  名前空間のグローバル層の名前サーバは反復名前解決のみサポート 2013/04/27   第4回 分散システム本読書会   24  /  25  
  • 25. 分散型DNSの実装 •  DNSのスケーラビリティ   –  上位レベルのノードほど、下位レベルのノードに比べて多くの 要求を受信する   –  キャッシュを使うことで、現状この問題を回避している     •  分散ハッシュテーブル(DHT)を用いたDNSの実装   –  CoDoNS  [  Ramasubramanian  and  Sirer,  2004a]  にて検討されている     –  利点   •  DHTベースの実装にマッピングすることで、スケーラビリティの問題を解決   –  欠点   •  名前構造を失っている   –  ある特定のドメイン内のすべての子を探索することが困難   –  DHTでは範囲検索を行うのが難しい   2013/04/27   第4回 分散システム本読書会   25  /  25