Mercurial > hg > Papers > 2014 > nobuyasu-master
diff paper/chapter2.tex @ 27:1abd3c17cff9
Added tree_conflict figures
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 26 Jan 2014 20:20:00 +0900 |
parents | 388cd4555b3d |
children | 41200e0b6831 |
line wrap: on
line diff
--- a/paper/chapter2.tex Sun Jan 26 00:16:38 2014 +0900 +++ b/paper/chapter2.tex Sun Jan 26 20:20:00 2014 +0900 @@ -1,7 +1,5 @@ \chapter{木構造データベースJungleの分散設計} - - \section{木構造データベースJungle} Jungle はスケーラビリティのある CMS の開発を目指して当研究室で開発されている非破壊的木構造データベースである. 一般的なコンテンツマネジメントシステムではブログツールや Wiki・SNS が多く, これらの @@ -154,16 +152,47 @@ -\section{データ衝突時におけるマージによる解決} -Jungle への分散実装を行うことである問題が発生する. -それは更新されたデータ同士が衝突を起こした時の処理である. -Jungle はリクエストがきた場合, 現在もっているデータを返す. -しかしそのデータは最新のものであるかは保証されない. -よって, 別のサーバノードで動いている Jungle からの更新データと衝突する可能性がある. + +\section{分散管理システムによるデータの分散} +Jungle は Git や Mercurial といった分散管理システムの機能を参考に作られている. +分散管理システムとは, +反対の意味の言葉として集中型バージョン管理システムがある. + + +\subsection{マージによるデータ変更衝突の解決} +分散管理システムでは, データの更新時において衝突が発生する時がある. +それは, 分散管理システムを参考にしている Jungle においても起こる問題である. +データの変更を行うときには, 元のデータに変更が加えられている状態かもしれない. +また, Jungle はリクエストがきた場合, 現在もっているデータを返す. +そのためデータは最新のものであるかは保証されない. +その場合, 古いデータに変更が加えられ, それを更に最新のデータへ伝搬させなければならない. +このデータ変更の衝突を解決する手段が必要である. +そこで + + +\begin{figure}[htpb] + \begin{center} + \includegraphics[scale=0.7]{figures/tree_conflict.pdf} + \caption{編集に衝突の発生しないデータ編集} + \label{fig:tree_conflict1} + \end{center} +\end{figure} + +\begin{figure}[htpb] + \begin{center} + \includegraphics[scale=0.7]{figures/tree_conflict2.pdf} + \caption{編集に衝突が発生するデータ編集} + \label{fig:tree_conflict2} + \end{center} +\end{figure} + この問題に対して Jungle はアプリケーションレベルでのマージを実装して貰うことで解決をはかる. + + + \section{データの永続性} @@ -183,5 +212,3 @@ - -