Mercurial > hg > Papers > 2012 > kazz-master
changeset 24:4d92d11daf7f
add TopologyManager
author | kazz <kazz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 09 Feb 2012 07:28:36 +0900 |
parents | 93d86a33d684 |
children | efb17e20ca5e |
files | paper/chapter3.tex paper/chapter4.tex |
diffstat | 2 files changed, 22 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter3.tex Thu Feb 09 06:37:09 2012 +0900 +++ b/paper/chapter3.tex Thu Feb 09 07:28:36 2012 +0900 @@ -468,12 +468,30 @@ \begin{itemize} \item {\ttfamily dot -T png ring.dot -o ring.png} \end{itemize} - \begin{figure}[htbp] \begin{center} - \includegraphics[width=60mm]{./images/ring.pdf} + \includegraphics[width=50mm]{./images/ring.pdf} \end{center} \caption{dot コマンドで生成された3台で構築されたリングのグラフ} \label{fig:ring_dot} \end{figure} +ノード間の接続には label を用いて名前が振られている。この接続名を用いて、ユーザーは接続先の Data Segment Manager にアクセスすることができる。 Receiver に setKey していた部分の、 managerKey がこれに相当する。 + +例えば、リングトポロジーの場合、 "right" と "left" という二つの接続が提供される。 + +また、各ノードには Topology Manager への先着順に "node0"、 "node1"、 "node2" のように、トポロジーファイルに記述されている抽象名が割り当てられる。 + +\subsection{Topology Manager の初期化} +Topology Manager は起動したら、コマンドライン引数で渡されたトポロジーファイルを読み込む。 +読み込んだファイルをパースし、ノードの抽象名同士の関わりをオブジェクトに起こす。 + +その後、 Topology Node からの参加表明を待つ。 + +\subsection{Topology Node の参加表明処理} +Topology Node は起動時にコマンドライン引数から Topology Manager の IP アドレスとポート番号を指定する。 +指定された Topology Manager に接続を行うと、 Topology Manager 側のキー "hosts" に、自分自身の IP アドレスとポート番号を put する。 + +Topology Manager は、自分自身のキー "hosts" を take しているので、 Topology Node からの参加表明をシーケンシャルに読み込むことが可能となる。 +参加表明を受け取った Topology Manager は、抽象名を参加表明した Topology Node のキー "host" に put する。 +その後、参加表明した Topology Node に依存している Toology Manager 上の Topology Node 名のキーに、参加表明した Topology Node の接続情報 (IP アドレス、ポート番号等) を put する。このため、準備ができていない Topology Node がいたとしても、準備ができ次第、 Topology Manager へ接続し、自分自身の接続名を take することにより、シーケンシャルに取り出し、データに合わせて接続していけばよい。