comparison 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
comparison
equal deleted inserted replaced
21:a4dfb70496ee 22:56753cfbeeab
133 133
134 134
135 \section{Jungleの永続性の実装} 135 \section{Jungleの永続性の実装}
136 136
137 137
138 \section{マージの実装} 138 \section{掲示板プログラムにおけるマージの実装}
139 Jungle への分散実装を行うことである問題が発生する. 139 Jungle に分散実装を行った後の問題としてデータ衝突がある.
140 それは更新されたデータ同士が衝突を起こした時の処理である. 140 他のサーバノードから送られてくるデータが既に手元で変更を加えた木構造を対象とした
141 Jungle はリクエストがきた場合, 現在もっているデータを返す. 141 場合に発生する問題である.
142 しかしそのデータは最新のものであるかは保証されない. 142 Jungle ではこれをアプリケーション毎にマージを実装することで解決させる.
143 よって, 別のサーバノードで動いている Jungle からの更新データと衝突する可能性がある.
144 143
145 この問題に対して Jungle はアプリケーションレベルでのマージを実装して貰うことで解決をはかる. 144 今回分散実装を行い, 例題として掲示板プログラムを用意した.
146 今回 Jungle に分散を行うにあたり掲示板プログラムを実装した. 145 掲示板プログラムに実装を行ったマージについて述べる.
147 掲示板プログラムに実装を行ったマージの例について述べる. 146 まず Jungle を用いた掲示板プログラムのデータ保持方法を図\ref{fig:merge2}に示す.
148
149 Jungle を用いた掲示板プログラムのデータ保持方法を示したのが図\ref{fig:merge1}になる.
150 \begin{figure}[htpb] 147 \begin{figure}[htpb]
151 \begin{center} 148 \begin{center}
152 \includegraphics[scale=0.70]{figures/merge1.pdf} 149 \includegraphics[scale=0.70]{figures/merge2.pdf}
153 \caption{Jungle による掲示板プログラムのデータ保持方法} 150 \caption{Jungle による掲示板プログラムのデータ保持方法}
154 \label{fig:merge1} 151 \label{fig:merge2}
155 \end{center} 152 \end{center}
156 \end{figure} 153 \end{figure}
157 154
158 掲示板プログラムでは各掲示板毎に1つの木構造が作成される. 155 掲示板プログラムでは各掲示板毎に1つの木構造が作成される.
159 また, この時作成された木構造データのルートノードを保持する木構造が別にある. 156 掲示板への1つの書き込みは子ノードを1つ追加することに相当する.
157 また, 各子ノードは attributes として書き込みの内容である message と書き込まれた時間を表す timestamp を保持している.
158 先に追加された順で子ノードには若い番号が割り振られる.
159
160 他サーバノードからの書き込みをそのまま子ノードの後ろに登録してしまうと, データの整合性が崩れてしまう.
161 この時の状態を表しているのが図\ref{fig:merge_imp1}と\ref{fig:merge_imp2}になる.
162 \begin{figure}[htpb]
163 \begin{center}
164 \includegraphics[scale=0.70]{figures/merge_imp1.pdf}
165 \caption{他サーバノードからの編集データ反映による整合性の崩れ1}
166 \label{fig:merge_imp1}
167 \end{center}
168 \end{figure}
169
170 \begin{figure}[htpb]
171 \begin{center}
172 \includegraphics[scale=0.70]{figures/merge_imp2.pdf}
173 \caption{他サーバノードからの編集データ反映による整合性の崩れ2}
174 \label{fig:merge_imp2}
175 \end{center}
176 \end{figure}
160 177
161 178
162 179
180
181