2
|
1 \chapter{分散データベースJungle}
|
|
2 JungleはスケーラビリティのあるCMSを目指して当研究室で開発されている非破壊的木構造データベースである。
|
|
3 本章では、Jungleのメイン部分であるJungleCoreについて述べた後、分散実装されたJungleNetworkについて記述する
|
0
|
4 \label{chap:concept}
|
2
|
5
|
0
|
6 \section{JungleCore}
|
2
|
7 Jungleの最大の特徴として、非破壊的木構造であることがあげられる。
|
|
8
|
|
9 通常の破壊的木構造は、データの編集を行う際に、データを上書き更新する(図\ref{fig:Des})ため、編集を行っている間ずっと木にロックをかける必要があり、また、閲覧者がいる場合、検索途中にデータが変わることを避けるために、データの検索が終わるまで書き換えを待つ必要がある。
|
|
10 しかし、これではロックによりスケーラビリティが損なわれてしまう。
|
|
11
|
|
12 \begin{figure}[h]
|
|
13 \begin{center}
|
|
14 \includegraphics[height = 5cm ,bb=0 0 404 207]{fig/destructive_tree.pdf}
|
|
15 \caption{破壊的木構造の編集}
|
|
16 \label{fig:Des}
|
|
17 \end{center}
|
|
18 \end{figure}
|
|
19
|
|
20 \clearpage
|
|
21
|
|
22 それに比べ非破壊的木構造は、一度生成した木を上書きすることはない。
|
|
23 データの編集を行う際に、ルートから編集を行うノードまでコピーを行い新しく木構造を構築することで行う(図\ref{fig:nonDes})。
|
|
24
|
|
25 \begin{figure}[h]
|
|
26 \begin{center}
|
|
27 \includegraphics[height = 5cm , bb=0 0 459 207]{fig/destructive_tree.pdf}
|
|
28 \caption{非破壊的木構造の編集}
|
|
29 \label{fig:nonDes}
|
|
30 \end{center}
|
|
31 \end{figure}
|
|
32
|
|
33 非破壊的木構造においてデータのロックが必要になる部分は、木のコピーを作った後に、ルートノードを更新するときだけである。
|
|
34 データ編集を行っている間ロックが必要な破壊的木構造に比べ、非破壊的木構造は検索中の木が変更されないことが保証されいているため、編集中においてもデータの読み込みが可能である。(図\ref{fig:desMerit})
|
|
35 そのため、非破壊的木構造に比べてスケールアウトがしやすくなっている。
|
|
36 \begin{figure}[h]
|
|
37 \begin{center}
|
|
38 \includegraphics[height = 7cm ,bb=0 0 350 301]{fig/non_destructive_merit.pdf}
|
|
39 \caption{非破壊的木構造の編集}
|
|
40 \label{fig:desMerit}
|
|
41 \end{center}
|
|
42 \end{figure}
|
0
|
43 \section{JungleNetwork}
|
2
|
44
|