Mercurial > hg > Papers > 2013 > nobuyasu-jssst
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}).