# HG changeset patch # User Nobuyasu Oshiro # Date 1390458834 -32400 # Node ID a7fbd5db80fb8cc9885342487fd19fda2d495874 # Parent 90a916194e59e10162ebdbde9f9c38eee7f49997 chapter3 diff -r 90a916194e59 -r a7fbd5db80fb paper/abstract_eng.tex --- a/paper/abstract_eng.tex Wed Jan 22 19:54:58 2014 +0900 +++ b/paper/abstract_eng.tex Thu Jan 23 15:33:54 2014 +0900 @@ -1,5 +1,5 @@ \begin{abstract_eng} -Recently, Smartphone and tablet pc are widely used, thereby Web services that handle large amounts of data are emerging. +Smartphone and tablet pc are widely used, thereby Web services that handle large amounts of data are emerging. It has caused the webserver is down. Therefore, scalability is important software factor today. Scalability in distributed system is able to increase performance linearly when just added new node to system. diff -r 90a916194e59 -r a7fbd5db80fb paper/chapter2.tex --- a/paper/chapter2.tex Wed Jan 22 19:54:58 2014 +0900 +++ b/paper/chapter2.tex Thu Jan 23 15:33:54 2014 +0900 @@ -1,4 +1,6 @@ \chapter{木構造データベースJungleの実装と分散設計} +\section{CAP 定理} + \section{木構造データベースJungle} Jungle はスケーラビリティのある CMS の開発を目指して当研究室で開発されている非破壊的木構造データベースである. diff -r 90a916194e59 -r a7fbd5db80fb paper/chapter3.tex --- a/paper/chapter3.tex Wed Jan 22 19:54:58 2014 +0900 +++ b/paper/chapter3.tex Thu Jan 23 15:33:54 2014 +0900 @@ -45,11 +45,18 @@ % DataSegment, CodeSegment はなしにしたほうがいいかもしれない. Alice が論文の主題じゃないから % それとこの2つの説明をするとしたら結構な量になる -\section{Aliceによるトポロジーの形成} -Alice はサーバノードによるネットワークトポロジー形成の機能を持つ. -トポロジーの内容は dot ファイルに記述される. -以下に, サーバノードの数が5で, 2分木ツリー構造を形成する dot ファイル -の例を\ref{src:alice_dot}に示す. +\section{Alice のトポロジーマネージャーの利用} +Alice はサーバノード同士によるネットワークトポロジー形成の機能を持つ. +トポロジーマネージャーの起動は\ref{src:alice_dot}の様にポート番号の指定と dot ファイルを引数として渡すことで行う. +(\ref{src:alice_ntm_run}). +\begin{lstlisting}[frame=lrbt,label=src:alice_ntm_run,caption=Alice によるネットワークトポロジーマネージャーの起動,numbers=left] +% java -cp Alice.jar alice.topology.manager.TopologyManager -p 10000 -conf ./topology/tree5.dot +\end{lstlisting} + + +ポート番号は Alice により記述された並列分散プログラムの起動時に渡す必要がある. +dot ファイルには, トポロジーをどのように形成するかが書かれている. +以下に, サーバノード数5で, 2分木ツリー構造を形成する dot ファイルの例を示す(\ref{src:alice_dot}). \begin{lstlisting}[frame=lrbt,label=src:alice_dot,caption=ネットワークトポロジー設定用 dot ファイル,numbers=left] % cat tree5.dot digraph test { @@ -64,30 +71,22 @@ } \end{lstlisting} -Alice のトポロジーマネージャーを起動する場合は\ref{src:alice_dot}の様にファイルを引数として渡す. - -(\ref{src:alice_ntm_run}). -\begin{lstlisting}[frame=lrbt,label=src:alice_ntm_run,caption=Alice によるネットワークトポロジーマネージャーの起動,numbers=left] -% java -cp Alice.jar alice.topology.manager.TopologyManager -p 10000 -conf /home/one/hg/nobuyasu/workspace/scripts/topology/tree5.dot -\end{lstlisting} - - - +node0 や node1 はサーバノードの名前を示す. +サーバノードの間にはラベルがあり, Alice 上ではこのラベル +に指定される文字列(キー)を使うことで他のサーバノードのデータへアクセスすることができる. +node0 -> node1 はサーバノード同士の繋がりを示している. +次に続く label="child1" は, node0 が node1 のデータに"child1"という文字列を使うことでアクセス +できることを示す. -\begin{lstlisting}[frame=lrbt,label=src:create_jungle,caption=Alice を使用してのトポロジー形成,numbers=left] -public static void main( String[] args ) throws Exception -{ - RemoteConfig conf = new RemoteConfig(args); - new TopologyNode(conf, new StartBBSCodeSegment(args, conf.bbsPort)); -} -\end{lstlisting} +dot ファイルを読み込んだ Alice のトポロジーマネージャーに対して, サーバーノードは +誰に接続を行えばよいかを訪ねる. +トポロジーマネージャーは訪ねてきたサーバノードに対してノード番号を割り振り, dot ファイル +に記述している通りにサーバノード同士が接続を行うよう指示をだす. - +トポロジーマネージャーは接続要求先を聞いてくるサーバノードに対して名前を割り振り, 接続相手を伝える. +dot ファイル\ref{src:alice_dot}により形成されるトポロジーを図\ref{fig:tree_topology}に示す. -トポロジーマネージャーは dot ファイルを読み込み, 接続要求をしてくるサーバノード -に, どのサーバノードにつなげればよいかを教える. -サーバノードには番号が割り振られ, 接続要求が先にきたもの程若い番号が割り当てられる. -これにより形成されるトポロジーを図\ref{fig:tree_topology}に示す. +\newpage \begin{figure}[htpb] \begin{center} @@ -97,17 +96,31 @@ \end{center} \end{figure} -\newpage 矢印に書かれている文字列は, 相手のデータにアクセスするキーを示す. "child1", "child2", "parent" というキーを使うことで別のサーバノードにあるデータを取得することができる. %子共となるノードは "parent" キーにより親の DSM (Remote DSM) にアクセスすることができる. %また, 親も子供となるノードの DSM に対して "child1" や "child2" キーによりアクセスすることが可能となる. +トポロジーマネージャーに最初に接続要求を行う並列分散プログラム側は, 次のように記述する(\ref{src:alice_start}) +\begin{lstlisting}[frame=lrbt,label=src:alice_start,caption=Alice を使用してのトポロジー形成,numbers=left] +public static void main( String[] args ) throws Exception +{ + RemoteConfig conf = new RemoteConfig(args); + new TopologyNode(conf, new StartBBSCodeSegment(args, conf.bbsPort)); +} +\end{lstlisting} + +そして, プログラムの起動時にトポロジーマネージャーが動いているサーバの + + + +\begin{comment} \subsection{トポロジー用 dot ファイル形成スクリプト} Alice ではトポロジー形成用スクリプトが用意されている. -ノードの数と子供の数を指定するだけで dot ファイルの作成が行える. +スクリプトを使用することで, ノードの数を指定するだけで dot ファイルの作成が行える. また, ツリーに限らずリングやメッシュといったトポロジーの形成も行うことができる. +\end{comment} % MessagePackの説明もここに簡単に入れたほうがいいかも. diff -r 90a916194e59 -r a7fbd5db80fb paper/conclusion.tex --- a/paper/conclusion.tex Wed Jan 22 19:54:58 2014 +0900 +++ b/paper/conclusion.tex Thu Jan 23 15:33:54 2014 +0900 @@ -6,5 +6,7 @@ \subsection{データ分割の実装} \subsection{Mergerアルゴリズムの設計} -\subsection{Compactionの実装・再接続の処理} -\subsection{Treeのバランスの問題} +\subsection{Compactionの実装・分代替性の実装} + + +%\subsection{Treeのバランスの問題}