changeset 18:b3bce5bacc04

wrote DefatltTreeOperationLogContainer
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Thu, 18 Jul 2013 13:58:12 +0900
parents 2132391fcb65
children 4afecc3d3331
files Paper/jssst.tex
diffstat 1 files changed, 32 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/Paper/jssst.tex	Thu Jul 18 10:14:24 2013 +0900
+++ b/Paper/jssst.tex	Thu Jul 18 13:58:12 2013 +0900
@@ -215,11 +215,12 @@
 
 Tree 編集の API として次の4つが用意されている.
 \begin{itemize}
-\item \verb+addNewChildAt(NodePath _path,int _pos);+
-\item \verb+deleteChildAt(NodePath _path,int _pos);+
+\item \verb+addNewChildAt(NodePath _path,int _pos)+
+\item \verb+deleteChildAt(NodePath _path,int _pos)+
 \item \verb+putAttribute(NodePath _path,+\\
 \verb+String _key,ByteBuffer _value)+
-\item \verb+deleteAttribute(NodePath _path,String _key)+
+\item \verb+deleteAttribute(NodePath _path,+\\
+\verb+String _key)+
 \end{itemize}
 
 \subsubsection{addNewChildAt}
@@ -238,9 +239,9 @@
 削除する attribute は文字列のキーで指定する.
 
 \subsection{TreeOperationLog}
-上記の API を使用すると Editor 内部では OperationLog として順次つまれていき, 最終
+上記の API を使用すると Editor 内部では NodeOperation として順次つまれていき, 最終
 的に commit されることで編集が行われる.
-複数の OperationLog の集まりを TreeOperationLog といい, これは編集の単位となる.
+複数の NodeOperation の集まりを TreeOperationLog といい, これが編集の単位となる.
 例えば, 後述する掲示板の実装では1つの書き込みに対して1つの Node を作成し, attribute を
 もたせている.
 その時のログは次のようになる.
@@ -251,15 +252,37 @@
 [PUT_ATTRIBUTE:<-1,1>:key:key,value:hoge]
 [PUT_ATTRIBUTE:<-1,1>:key:timestamp,value:0]
 \end{verbatim}
+大文字の英字は実行した API を表す.
 <>により囲まれている数値は NodePath を示す.
-このログの塊が1つの TreeOperationLog となる.
+NodePath の後ろは posision や attribute の情報を表している.
+NodeOperation と NodePath の組み合わせを TreeOperation として扱い, それらいくつか集まりが TreeOperationLog となる.
 
-\subsection{Alice を用いた分散実装}
+\section{Alice を用いた Jungle の分散実装}
+Alice を用いた Jungle のデータ分散は, 上記の TreeOperationLog を Data Segment として扱うことで行える.
+そのために必要なことは以下となる.
+\begin{itemize}
+\item TreeOperationLog を MessagePack によりシリアライズ
+\item TreeOperationLog を扱う Data Segment の作成
+\item Data Segment として受け取った TreeOperationLog の Jungle への適応
+\end{itemize}
 
 
-
+\subsection{TreeOperationLog の MessagePack によるシリアライズ}
+TreeOperationLog はいくつかの TreeOperation を List で保持している.
+そして TreeOperation は NodeOperation と NodePath を保持し, NodePath は
+Integer の List となっている.
 
-\section{その3}
+これらを MessagePack でシリアライズするために, それぞれのシリアライズを
+行う Container クラスの作成を行った.
+それらを保持し最終的には DefaultTreeOperationLogContainer というクラスの作成を行う.
+このクラスは TreeOperationLog を Value 型として保持し, 他に木の名前やリビジョン番号
+と言った情報も保持する.
+Data Segment へログを put するときはこの DefaultTreeOperationLogContainer クラスを使用する.
+
+\subsection{}
+\subsection{}
+\subsection{}
+
 
 \section{その4}