changeset 31:984092bfce37

description for alice topology
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Fri, 19 Jul 2013 11:54:36 +0900
parents 201e1acfdd40
children eb062917ad2d
files Paper/figures/alice_topology.xbb Paper/figures/cassandra.xbb Paper/figures/destructive_tree.xbb Paper/figures/distribute_jungle.xbb Paper/figures/dsandcs.xbb Paper/figures/nodepath.xbb Paper/figures/non_destructive_tree.xbb Paper/figures/putChildLog.xbb Paper/figures/putLog.xbb Paper/graffle/alice_topology.graffle Paper/jssst.tex
diffstat 11 files changed, 77 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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
 
--- 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 @@
 	<key>Creator</key>
 	<string>Oshiro Nobuyasu</string>
 	<key>DisplayScale</key>
-	<string>1 0/72 in = 1 0/72 in</string>
+	<string>1 0/72 in = 1.0000 in</string>
 	<key>GraphDocumentVersion</key>
 	<integer>8</integer>
 	<key>GraphicsList</key>
@@ -337,8 +337,8 @@
 			<integer>85</integer>
 			<key>Points</key>
 			<array>
-				<string>{166.5949175861729, 343.13256582978664}</string>
-				<string>{199.80727825990553, 308.82494726663072}</string>
+				<string>{166.61632896533251, 343.1418341016348}</string>
+				<string>{199.87347559122603, 308.85373982357572}</string>
 			</array>
 			<key>Style</key>
 			<dict>
@@ -372,8 +372,8 @@
 			<integer>84</integer>
 			<key>Points</key>
 			<array>
-				<string>{346.314193796425, 277.96083003861924}</string>
-				<string>{298.95087728845385, 242.53019077843385}</string>
+				<string>{346.31108148515403, 277.96268189497715}</string>
+				<string>{298.94018410046124, 242.53655809102867}</string>
 			</array>
 			<key>Style</key>
 			<dict>
@@ -407,8 +407,8 @@
 			<integer>83</integer>
 			<key>Points</key>
 			<array>
-				<string>{231.8193587733866, 276.23060093572798}</string>
-				<string>{263.40064840559273, 244.25615471281256}</string>
+				<string>{231.82606191183928, 276.23355901573223}</string>
+				<string>{263.42051638562566, 244.26493536601004}</string>
 			</array>
 			<key>Style</key>
 			<dict>
--- 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
   <TreeOperation> _log) throws IOExceptio{
- MessagePack msgpack = new MessagePack();
+  MessagePack msgpack 
+  = SingletonMessage.getInstance();
  List<Value> list 
   = new LinkedList<Value>();
  for(TreeOperation op : _log) {
@@ -308,10 +347,28 @@
 \end{verbatim}
 %\end{lstlisting}
 
-List で保持していた TreeOperation を List<Value> へと変換させている.
+SingleTonMessage は使用する MessagePack を Singleton で使用するためのクラスである.
+MessagePack により List<TreeOperation> で保持していた TreeOperation を List<Value> へと変換させている.
 また, 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}).