diff paper/chapter3.tex @ 22:56753cfbeeab

Added merge_imp.pdf
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Thu, 23 Jan 2014 19:05:44 +0900
parents a4dfb70496ee
children 21e1a110f258
line wrap: on
line diff
--- a/paper/chapter3.tex	Thu Jan 23 16:35:50 2014 +0900
+++ b/paper/chapter3.tex	Thu Jan 23 19:05:44 2014 +0900
@@ -135,28 +135,47 @@
 \section{Jungleの永続性の実装}
 
 
-\section{マージの実装}
-Jungle への分散実装を行うことである問題が発生する.
-それは更新されたデータ同士が衝突を起こした時の処理である.
-Jungle はリクエストがきた場合, 現在もっているデータを返す.
-しかしそのデータは最新のものであるかは保証されない.
-よって, 別のサーバノードで動いている Jungle からの更新データと衝突する可能性がある.
+\section{掲示板プログラムにおけるマージの実装}
+Jungle に分散実装を行った後の問題としてデータ衝突がある.
+他のサーバノードから送られてくるデータが既に手元で変更を加えた木構造を対象とした
+場合に発生する問題である.
+Jungle ではこれをアプリケーション毎にマージを実装することで解決させる.
 
-この問題に対して Jungle はアプリケーションレベルでのマージを実装して貰うことで解決をはかる.
-今回 Jungle に分散を行うにあたり掲示板プログラムを実装した.
-掲示板プログラムに実装を行ったマージの例について述べる.
-
-Jungle を用いた掲示板プログラムのデータ保持方法を示したのが図\ref{fig:merge1}になる.
+今回分散実装を行い, 例題として掲示板プログラムを用意した.
+掲示板プログラムに実装を行ったマージについて述べる.
+まず Jungle を用いた掲示板プログラムのデータ保持方法を図\ref{fig:merge2}に示す.
 \begin{figure}[htpb]
   \begin{center}
-    \includegraphics[scale=0.70]{figures/merge1.pdf}
+    \includegraphics[scale=0.70]{figures/merge2.pdf}
     \caption{Jungle による掲示板プログラムのデータ保持方法}
-    \label{fig:merge1}
+    \label{fig:merge2}
   \end{center}
 \end{figure}
 
 掲示板プログラムでは各掲示板毎に1つの木構造が作成される.
-また, この時作成された木構造データのルートノードを保持する木構造が別にある.
+掲示板への1つの書き込みは子ノードを1つ追加することに相当する.
+また, 各子ノードは attributes として書き込みの内容である message と書き込まれた時間を表す timestamp を保持している.
+先に追加された順で子ノードには若い番号が割り振られる.
+
+他サーバノードからの書き込みをそのまま子ノードの後ろに登録してしまうと, データの整合性が崩れてしまう.
+この時の状態を表しているのが図\ref{fig:merge_imp1}と\ref{fig:merge_imp2}になる.
+\begin{figure}[htpb]
+  \begin{center}
+    \includegraphics[scale=0.70]{figures/merge_imp1.pdf}
+    \caption{他サーバノードからの編集データ反映による整合性の崩れ1}
+    \label{fig:merge_imp1}
+  \end{center}
+\end{figure}
+
+\begin{figure}[htpb]
+  \begin{center}
+    \includegraphics[scale=0.70]{figures/merge_imp2.pdf}
+    \caption{他サーバノードからの編集データ反映による整合性の崩れ2}
+    \label{fig:merge_imp2}
+  \end{center}
+\end{figure}
 
 
 
+
+