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