Mercurial > hg > Papers > 2014 > nobuyasu-master
view paper/chapter3.tex @ 17:dfa2fd4658b2
Modified abstract
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 21 Jan 2014 17:15:09 +0900 |
parents | e16dad3b80fc |
children | fc14b1876141 |
line wrap: on
line source
\chapter{Jungleの分散実装} \section{TreeOperationLogを用いての分散データベースの実装} Jungle でデータ扱うと TreeOperationLog として残ることは述べた. この TreeOperationLog を他のサーバへと送り, Jungle の編集を行って 貰うことでデータの分散を行うことができる. ここで問題になることはネットワークトポロジーの形成方法であった. Jungle で使用するネットワークトポロジーはツリー型を考えている. しかし, リング型といった他のネットワークトポロジーによる実装に関しても試す余地はある. 自由にネットワークトポロジーの形成を行うことができる必要があった. そこで当研究室で開発を行っている並列分散フレームワークである Alice を使用することにした. Alice により提供されるネットワークトポロジー形成を用いて TreeOperationLog を各サーバノードへ 配ることで並列分散フレームワークの実装を行う. % トポロジー形成の説明をする. 重要さなども。 % トポロジーの形成は容易ではない. % Alice が必要な機能を提供してくれることを述べる % Alice はトポロジー形成の機能を提供している % トポロジー間でのデータの受け渡す機能も提供している \begin{figure}[htpb] \begin{minipage}{0.5\hsize} \begin{center} \includegraphics[scale=0.7]{figures/network_topology_ring.pdf} \caption{リング型のNetwork Topology} \label{fig:topology_ring} \end{center} \end{minipage} \begin{minipage}{0.5\hsize} \begin{center} \includegraphics[scale=0.7]{figures/network_topology_tree.pdf} \caption{ツリー型のNetwork Topology} \label{fig:topology_tree} \end{center} \end{minipage} \end{figure} \section{並列分散フレームワークAlice} Alice は当研究室で開発している並列分散フレームワークである. Alice はデータを DataSegment, コードを CodeSegment という単位で扱うプログラミングを提供している. DataSegment として扱われるデータは % DataSegment, CodeSegment はなしにしたほうがいいかもしれない. Alice が論文の主題じゃないから % それとこの2つの説明をするとしたら結構な量になる \section{Aliceによるトポロジーの形成} Alice はサーバノードによるネットワークトポロジー形成の機能を持つ. トポロジーの内容を dot ファイルに記述される. 以下に, サーバノードの数が5で, 2分木ツリー構造を形成する dot ファイル の例を示す. \begin{verbatim} digraph test { node0 -> node1 [label="child1"] node0 -> node2 [label="child2"] node1 -> node0 [label="parent"] node1 -> node3 [label="child1"] node1 -> node4 [label="child2"] node2 -> node0 [label="parent"] node3 -> node1 [label="parent"] node4 -> node1 [label="parent"] } \end{verbatim} トポロジーマネージャーは dot ファイルを読み込み, 接続要求をしてくるサーバノード に, どのサーバノードにつなげればよいかを教える. サーバノードには番号が割り振られ, 接続要求が先にきたもの程若い番号が割り当てられる. これにより形成されるトポロジーを図\ref{fig:tree_topology}に示す. \begin{figure}[htpb] \begin{center} \includegraphics[scale=0.70]{figures/tree_topology.pdf} \caption{Alice によるネットワークトポロジー形成} \label{fig:tree_topology} \end{center} \end{figure} 矢印に書かれている文字列は, 相手のデータにアクセスするキーを示す. "child1", "child2", "parent" というキーを使うことで別のサーバノードにあるデータを取得することができる. %子共となるノードは "parent" キーにより親の DSM (Remote DSM) にアクセスすることができる. %また, 親も子供となるノードの DSM に対して "child1" や "child2" キーによりアクセスすることが可能となる. \subsection{トポロジー用 dot ファイル形成スクリプト} Alice ではトポロジー形成用スクリプトが用意されている. ノードの数と子供の数を指定するだけで dot ファイルの作成が行える. また, ツリーに限らずリングやメッシュといったトポロジーの形成も行うことができる. % MessagePackの説明もここに簡単に入れたほうがいいかも. \section{Aliceを用いての分散実装} Alice によりトポロジーを形成 \section{ログのシリアライズ} ログのシリアライズについて述べる. シリアライズとは, データをネットワーク上に流しても良い形式に変換することである. \section{Jungleの永続性の実装} \subsection{マージの実装}