# HG changeset patch # User Nobuyasu Oshiro # Date 1392406634 -32400 # Node ID ae161408bc1c80c1ffcaeb38889cacd907bdaf3a # Parent be9d52d3c424f79ff035acfa7797d8a2815fe7ee Fixed chapter2.tex diff -r be9d52d3c424 -r ae161408bc1c paper/chapter2.tex --- a/paper/chapter2.tex Thu Feb 13 22:53:32 2014 +0900 +++ b/paper/chapter2.tex Sat Feb 15 04:37:14 2014 +0900 @@ -1,5 +1,5 @@ \chapter{木構造データベースJungle} -Jungle はスケーラビリティのあるCMSの開発を目指して当研究室で開発されている非破壊的木構造データベースである. + Jungle はスケーラビリティのあるCMSの開発を目指して当研究室で開発されている非破壊的木構造データベースである. 一般的なコンテンツマネジメントシステムではブログツールやWiki・SNSが多く, これらの ウェブサイトの構造は大体が木構造であるため, データ構造として木構造を採用している. 現在JavaとHaskellによりそれぞれ言語で開発されており本研究で扱うのはJava版である. @@ -23,7 +23,7 @@ これではロックによりスケーラビリティが損なわれてしまう. \subsection{非破壊的木構造} -非破壊的木構造は破壊的木構造とは違い, 一度作成した木を破壊することはない. +非破壊的木構造は破壊的木構造とは異なり, 一度作成した木を破壊することはない. 非破壊的木構造においてデータの編集は, ルートから編集を行うノードまでコピーを 行い新しく木構造を作成することで行われる. 図\ref{fig:nondestractive}は非破壊的木構造のデータ編集を示している. @@ -41,8 +41,8 @@ \begin{enumerate} \item ルートから編集を行うノードまでのパスを調べる(図\ref{fig:nondestractive_edit1}). \item 編集を行うノードのコピーをとる. コピーをとったノードへデータの編集を行う(図\ref{fig:nondestractive_edit2}). -\item 調べたパスに従いルートからコピーしたノードまでの間のノードのコピーをとり繋げる(図\ref{fig:nondestractive_edit3}). -\item コピーしたルートノードは編集を行っていないノードへの参照を貼り新しい木構造を作る(図\ref{fig:nondestractive_edit4}). +\item 調べたパスに従いルートからコピーしたノードまでの間のノードのコピーをとり, 繋げる(図\ref{fig:nondestractive_edit3}). +\item コピーしたルートノードは編集を行っていないノードへの参照を貼り, 新しい木構造を作る(図\ref{fig:nondestractive_edit4}). \end{enumerate} \begin{figure}[htpb] @@ -83,7 +83,7 @@ ルートノードを更新するときだけである. データ編集を行っている間ロックが必要な破壊的木構造に比べ, 編集中においてもデータの読み込みが 可能である(図\ref{fig:nondestractive_merit}). -そのため, 破壊的木構造に比べスケールがしやすくなっている. +そのため, 破壊的木構造に比べてスケールアウトがしやすくなっている. \begin{figure}[htpb] \begin{center} @@ -141,10 +141,10 @@ このTreeOperationの集まりをTreeOperationLogという. \subsection{TreeOperationLog} -Jungle 内部ではTreeOperationは順次ログに積まれていき, 最終的に + Jungle 内部ではTreeOperationは順次ログに積まれていき, 最終的に commitされることで編集が完了する. この時, ログに積まれた複数のTreeOperationはTreeOperationLogとして扱われる. -TreeOperationLogの仕様を\ref{src:treeoperationlog}に示す. +TreeOperationLogの仕様をソースコード\ref{src:treeoperationlog}に示す. \begin{lstlisting}[frame=lrbt,label=src:treeoperationlog,caption=TreeOperationLogの仕様,numbers=left] public interface TreeOperationLog extends Iterable { @@ -153,17 +153,17 @@ public int length(); } \end{lstlisting} -\verb|Iterable|を継承しているためIteratorによりTreeOperationを取り出せるようになっている. + \verb|Iterable|を継承しているためIteratorによりTreeOperationを取り出せるようになっている. addやappendメソッドを使ってTreeOperationを積み上げていくことができる. -次にデータ編集により発生するTreeOperationLogの具体的な例を示す(\ref{src:treelog}). +次にデータ編集により発生するTreeOperationLogの具体的な例を示す(ソースコード\ref{src:treelog}). \begin{lstlisting}[frame=lrbt,label=src:treelog,caption=トポロジーマネージャーの利用,numbers=left] [APPEND_CHILD:<-1>:pos:0] [PUT_ATTRIBUTE:<-1,0>:key:author,value:oshiro] [PUT_ATTRIBUTE:<-1,0>:key:mes,value:hello] [PUT_ATTRIBUTE:<-1,0>:key:timestamp,value:0] \end{lstlisting} -このログはルートノードに対し子ノードを追加し, 追加した子ノードに attribute を3つ追加する際に図れるログである(図\ref{fig:treeoperationlog}). + このログはルートノードに対し子ノードを追加し, 追加した子ノードに attribute を3つ追加する際に図れるログである(図\ref{fig:treeoperationlog}). 大文字の英字は実行した NodeOperation の種類を表す. \verb|<>| により囲まれている数字は NodePath を示す. diff -r be9d52d3c424 -r ae161408bc1c paper/master_paper.pdf Binary file paper/master_paper.pdf has changed diff -r be9d52d3c424 -r ae161408bc1c paper/master_paper.tex --- a/paper/master_paper.tex Thu Feb 13 22:53:32 2014 +0900 +++ b/paper/master_paper.tex Sat Feb 15 04:37:14 2014 +0900 @@ -3,7 +3,7 @@ \usepackage{ascmac} \usepackage[dvipdfmx]{graphicx} \usepackage{here} -\usepackage{listings} +\usepackage{listings,jlisting} \usepackage{comment} \input{dummy.tex} %% font