Mercurial > hg > Papers > 2014 > nobuyasu-master
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} + +