# HG changeset patch # User Nobuyasu Oshiro # Date 1374202476 -32400 # Node ID 984092bfce3722de50297a9f6ac60e65bf70a0c7 # Parent 201e1acfdd4059d685d7491ad5f5128d48e253da description for alice topology diff -r 201e1acfdd40 -r 984092bfce37 Paper/figures/alice_topology.xbb --- a/Paper/figures/alice_topology.xbb Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/figures/alice_topology.xbb Fri Jul 19 11:54:36 2013 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 386.000000 218.000000 %%PDFVersion: 1.4 %%Pages: 1 -%%CreationDate: Thu Jul 18 21:44:53 2013 +%%CreationDate: Fri Jul 19 09:36:40 2013 diff -r 201e1acfdd40 -r 984092bfce37 Paper/figures/cassandra.xbb --- a/Paper/figures/cassandra.xbb Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/figures/cassandra.xbb Fri Jul 19 11:54:36 2013 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 336.000000 201.000000 %%PDFVersion: 1.3 %%Pages: 1 -%%CreationDate: Thu Jul 18 21:44:53 2013 +%%CreationDate: Fri Jul 19 09:36:40 2013 diff -r 201e1acfdd40 -r 984092bfce37 Paper/figures/destructive_tree.xbb --- a/Paper/figures/destructive_tree.xbb Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/figures/destructive_tree.xbb Fri Jul 19 11:54:36 2013 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 404.000000 207.000000 %%PDFVersion: 1.4 %%Pages: 1 -%%CreationDate: Thu Jul 18 21:44:53 2013 +%%CreationDate: Fri Jul 19 09:36:40 2013 diff -r 201e1acfdd40 -r 984092bfce37 Paper/figures/distribute_jungle.xbb --- a/Paper/figures/distribute_jungle.xbb Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/figures/distribute_jungle.xbb Fri Jul 19 11:54:36 2013 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 245.000000 213.000000 %%PDFVersion: 1.3 %%Pages: 1 -%%CreationDate: Thu Jul 18 21:44:53 2013 +%%CreationDate: Fri Jul 19 09:36:40 2013 diff -r 201e1acfdd40 -r 984092bfce37 Paper/figures/dsandcs.xbb --- a/Paper/figures/dsandcs.xbb Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/figures/dsandcs.xbb Fri Jul 19 11:54:36 2013 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 396.000000 256.000000 %%PDFVersion: 1.3 %%Pages: 1 -%%CreationDate: Thu Jul 18 21:44:53 2013 +%%CreationDate: Fri Jul 19 09:36:40 2013 diff -r 201e1acfdd40 -r 984092bfce37 Paper/figures/nodepath.xbb --- a/Paper/figures/nodepath.xbb Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/figures/nodepath.xbb Fri Jul 19 11:54:36 2013 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 315.000000 310.000000 %%PDFVersion: 1.3 %%Pages: 1 -%%CreationDate: Thu Jul 18 21:44:53 2013 +%%CreationDate: Fri Jul 19 09:36:40 2013 diff -r 201e1acfdd40 -r 984092bfce37 Paper/figures/non_destructive_tree.xbb --- a/Paper/figures/non_destructive_tree.xbb Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/figures/non_destructive_tree.xbb Fri Jul 19 11:54:36 2013 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 459.000000 207.000000 %%PDFVersion: 1.4 %%Pages: 1 -%%CreationDate: Thu Jul 18 21:44:53 2013 +%%CreationDate: Fri Jul 19 09:36:40 2013 diff -r 201e1acfdd40 -r 984092bfce37 Paper/figures/putChildLog.xbb --- a/Paper/figures/putChildLog.xbb Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/figures/putChildLog.xbb Fri Jul 19 11:54:36 2013 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 385.000000 149.000000 %%PDFVersion: 1.4 %%Pages: 1 -%%CreationDate: Thu Jul 18 21:44:53 2013 +%%CreationDate: Fri Jul 19 09:36:40 2013 diff -r 201e1acfdd40 -r 984092bfce37 Paper/figures/putLog.xbb --- a/Paper/figures/putLog.xbb Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/figures/putLog.xbb Fri Jul 19 11:54:36 2013 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 385.000000 149.000000 %%PDFVersion: 1.4 %%Pages: 1 -%%CreationDate: Thu Jul 18 21:44:53 2013 +%%CreationDate: Fri Jul 19 09:36:40 2013 diff -r 201e1acfdd40 -r 984092bfce37 Paper/graffle/alice_topology.graffle --- a/Paper/graffle/alice_topology.graffle Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/graffle/alice_topology.graffle Fri Jul 19 11:54:36 2013 +0900 @@ -46,7 +46,7 @@ Creator Oshiro Nobuyasu DisplayScale - 1 0/72 in = 1 0/72 in + 1 0/72 in = 1.0000 in GraphDocumentVersion 8 GraphicsList @@ -337,8 +337,8 @@ 85 Points - {166.5949175861729, 343.13256582978664} - {199.80727825990553, 308.82494726663072} + {166.61632896533251, 343.1418341016348} + {199.87347559122603, 308.85373982357572} Style @@ -372,8 +372,8 @@ 84 Points - {346.314193796425, 277.96083003861924} - {298.95087728845385, 242.53019077843385} + {346.31108148515403, 277.96268189497715} + {298.94018410046124, 242.53655809102867} Style @@ -407,8 +407,8 @@ 83 Points - {231.8193587733866, 276.23060093572798} - {263.40064840559273, 244.25615471281256} + {231.82606191183928, 276.23355901573223} + {263.42051638562566, 244.26493536601004} Style diff -r 201e1acfdd40 -r 984092bfce37 Paper/jssst.tex --- a/Paper/jssst.tex Fri Jul 19 09:09:22 2013 +0900 +++ b/Paper/jssst.tex Fri Jul 19 11:54:36 2013 +0900 @@ -263,11 +263,49 @@ Alice を用いた Jungle のデータ分散は, 上記の TreeOperationLog を Data Segment として扱うことで行える. そのために必要なことは以下となる. \begin{itemize} +\item トポロジーの形成 \item TreeOperationLog を MessagePack によりシリアライズ \item TreeOperationLog を扱う Data Segment の作成 %\item Data Segment として受け取った TreeOperationLog の Jungle への適応 \end{itemize} +\subsection{トポロジーの形成} +Alice はトポロジーの形成を行う機能を提供している. +トポロジー設定用ファイルに従い, ノード同士を接続させる. + +トポロジー設定用ファイルは DOT Language で記述される. +例えば, 5ノード2分木のノードを組みたいときは次のようなファイルになる. + +\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} + +これにより形成されるトポロジーを図\ref{fig:tree_topology}に示す. + + +\begin{figure}[htpb] + \begin{center} + \includegraphics[scale=0.50]{figures/tree_topology.pdf} + \caption{} + \label{fig:tree_topology} + \end{center} +\end{figure} + +子共となるノードは "parent" キーにより親の DSM (Remote DSM) にアクセスすることができる. +また, 親も子供となるノードの DSM に対して "child1" や "child2" キーによりアクセスすることが可能となる. + +Alice ではスクリプトが用意されており, ノードの数と子供の数を指定するだけで dot ファイルの作成が行える. +このように, 比較的楽にトポロジーの形成が行えるのは Alice の特徴である. + \subsection{TreeOperationLog の MessagePack によるシリアライズ} TreeOperationLog はそのまま MessagePack でシリアライズすることはできない. @@ -285,7 +323,8 @@ \begin{verbatim} public void unconvert(Iterable _log) throws IOExceptio{ - MessagePack msgpack = new MessagePack(); + MessagePack msgpack + = SingletonMessage.getInstance(); List list = new LinkedList(); for(TreeOperation op : _log) { @@ -308,10 +347,28 @@ \end{verbatim} %\end{lstlisting} -List で保持していた TreeOperation を List へと変換させている. +SingleTonMessage は使用する MessagePack を Singleton で使用するためのクラスである. +MessagePack により List で保持していた TreeOperation を List へと変換させている. また, TreeOperationLog の保持だけでなく, 編集した木の名前やリビジョン番号, 変更を行ったノードの情報を -ノードの名前といった情報も保持するようにした. -DefaultTreeOperationLogContainer により, TreeOperationLog を Data Segment へと put することができる. +ノードの名前といった情報も保持させる. +DefaultTreeOperationLogContainer の生成から Data Segment へ put を行なっているソースを次に示す. +\begin{verbatim} +DefaultTreeOperationLogContainer container + = new DefaultTreeOperationLogContainer(); +container.setTreeName(_treeName); +container.setUUID(_uuid); +container.setUpdaterName(_updaterName); +container.setRevision(nextRevision); +container.setPosition(pos); +container.unconvert(_log); +container.setTimeStamp(timestamp); +HashLogUpdateCodeSegment cs + = new HashLogUpdateCodeSegment( + container.getHashLogString()); +cs.ods.put("log", container); +\end{verbatim} +cs.ods.put により Data Segment のリスト "log" に対してログの put を行う. + \subsection{ログを扱う Data Segment} Alice の各ノードは "log", "childLog" というキーでログを扱う(図\ref{fig:topology}).