annotate chapter2.tex @ 29:5ee5d1bfce28 default tip

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 19 Feb 2015 13:17:33 +0900
parents 96fc201c4e8c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
tatsuki
parents: 4
diff changeset
1 \chapter{分散木構造データベースJungle}
4
tatsuki
parents: 3
diff changeset
2 Jungleとは、当研究室で開発を行っている、スケーラビリティのある、世の中の知識構造を煩雑なデータ設計を行うこと無く格納できることを目標としたデータベースである。
tatsuki
parents: 3
diff changeset
3 本章では、Jungleの基本的な特徴についての解説を行う。
3
tatsuki
parents: 2
diff changeset
4
0
8bb94503a263 create table of contents and MindMap
tatsuki
parents:
diff changeset
5 \label{chap:concept}
2
tatsuki
parents: 0
diff changeset
6
4
tatsuki
parents: 3
diff changeset
7 \section{Jungleのデータ構造}
tatsuki
parents: 3
diff changeset
8 研究目的でも述べたが、我々が扱う知識は主に木構造である。
18
96fc201c4e8c add bibi
tatsuki
parents: 11
diff changeset
9 Jungleはそれらの知識を直接格納するため、データ形式は非破壊的木構造を採用している。
4
tatsuki
parents: 3
diff changeset
10 はじめに、非破壊的木構造と通常の破壊的木構造の違いについて説明を行う。
2
tatsuki
parents: 0
diff changeset
11
18
96fc201c4e8c add bibi
tatsuki
parents: 11
diff changeset
12 通常の破壊的木構造は、データの編集を行う際に、データを上書き更新する(図\ref{fig:Des})ため、編集を行っている間ずっと木にロックをかける必要がある。
96fc201c4e8c add bibi
tatsuki
parents: 11
diff changeset
13 また、閲覧者がいる場合検索途中にデータが変わることを避けるために、データの検索が終わるまで書き換えを待つ必要がある。
2
tatsuki
parents: 0
diff changeset
14 しかし、これではロックによりスケーラビリティが損なわれてしまう。
tatsuki
parents: 0
diff changeset
15
tatsuki
parents: 0
diff changeset
16 \begin{figure}[h]
tatsuki
parents: 0
diff changeset
17 \begin{center}
tatsuki
parents: 0
diff changeset
18 \includegraphics[height = 5cm ,bb=0 0 404 207]{fig/destructive_tree.pdf}
tatsuki
parents: 0
diff changeset
19 \caption{破壊的木構造の編集}
tatsuki
parents: 0
diff changeset
20 \label{fig:Des}
tatsuki
parents: 0
diff changeset
21 \end{center}
tatsuki
parents: 0
diff changeset
22 \end{figure}
tatsuki
parents: 0
diff changeset
23
tatsuki
parents: 0
diff changeset
24 \clearpage
tatsuki
parents: 0
diff changeset
25
tatsuki
parents: 0
diff changeset
26 それに比べ非破壊的木構造は、一度生成した木を上書きすることはない。
3
tatsuki
parents: 2
diff changeset
27 データの編集は、ルートから編集を行うノードまでコピーを行い新しく木構造を構築することで行う(図\ref{fig:nonDes})。
2
tatsuki
parents: 0
diff changeset
28
tatsuki
parents: 0
diff changeset
29 \begin{figure}[h]
tatsuki
parents: 0
diff changeset
30 \begin{center}
18
96fc201c4e8c add bibi
tatsuki
parents: 11
diff changeset
31 \includegraphics[height = 5cm , bb=0 0 459 207]{fig/non_destructive_tree.pdf}
2
tatsuki
parents: 0
diff changeset
32 \caption{非破壊的木構造の編集}
tatsuki
parents: 0
diff changeset
33 \label{fig:nonDes}
tatsuki
parents: 0
diff changeset
34 \end{center}
tatsuki
parents: 0
diff changeset
35 \end{figure}
tatsuki
parents: 0
diff changeset
36
tatsuki
parents: 0
diff changeset
37 非破壊的木構造においてデータのロックが必要になる部分は、木のコピーを作った後に、ルートノードを更新するときだけである。
3
tatsuki
parents: 2
diff changeset
38 また、データ編集を行っている間ロックが必要な破壊的木構造に比べ、非破壊的木構造は検索中の木が変更されないことが保証されいているため、編集中においてもデータの読み込みが可能である。(図\ref{fig:desMerit})
11
7736b4d79048 abst update
tatsuki
parents: 6
diff changeset
39 そのため、破壊的木構造に比べてスケールアウトがしやすくなっている。
2
tatsuki
parents: 0
diff changeset
40 \begin{figure}[h]
tatsuki
parents: 0
diff changeset
41 \begin{center}
tatsuki
parents: 0
diff changeset
42 \includegraphics[height = 7cm ,bb=0 0 350 301]{fig/non_destructive_merit.pdf}
tatsuki
parents: 0
diff changeset
43 \caption{非破壊的木構造の編集}
tatsuki
parents: 0
diff changeset
44 \label{fig:desMerit}
tatsuki
parents: 0
diff changeset
45 \end{center}
tatsuki
parents: 0
diff changeset
46 \end{figure}
3
tatsuki
parents: 2
diff changeset
47
18
96fc201c4e8c add bibi
tatsuki
parents: 11
diff changeset
48 また、Jungleは過去のversionのTreeを全て保持しているため、いつでもアクセスすることが可能である。
3
tatsuki
parents: 2
diff changeset
49
4
tatsuki
parents: 3
diff changeset
50 \section{分散機能}
tatsuki
parents: 3
diff changeset
51 Jungleの分散機能は、当研究室で開発を行っている並列分散フレームワークであるAliceを使用している。
tatsuki
parents: 3
diff changeset
52 Aliceはユーザーが望んだマシンへの接続や、必要なデータへのアクセスを行う機構等、ネットワークトポロジー形成機能を提
tatsuki
parents: 3
diff changeset
53 供している。
tatsuki
parents: 3
diff changeset
54
tatsuki
parents: 3
diff changeset
55 Jungleは、ネットワークトポロジーを構築する際に、木構造を想定したネットワークトポロジーを形成しサーバー同士を接続することで通信を行っている。
tatsuki
parents: 3
diff changeset
56 木構造なら、一度RootNodeまでデータを伝搬させることで整合性を取ることが出来る(図\ref{fig:topologu})からである。
3
tatsuki
parents: 2
diff changeset
57 データの伝搬中に衝突が発生した場合、Mergeを行い結果を改めて伝搬すれば良い。
2
tatsuki
parents: 0
diff changeset
58
3
tatsuki
parents: 2
diff changeset
59 \begin{figure}[h]
tatsuki
parents: 2
diff changeset
60 \begin{center}
tatsuki
parents: 2
diff changeset
61 \includegraphics[bb=0 0 329 263]{fig/network_topology_tree.pdf}
4
tatsuki
parents: 3
diff changeset
62 \caption{Jungle-networkのトポロジの形成例とデータの伝搬順序}
3
tatsuki
parents: 2
diff changeset
63 \label{fig:topologu}
tatsuki
parents: 2
diff changeset
64 \end{center}
tatsuki
parents: 2
diff changeset
65 \end{figure}
tatsuki
parents: 2
diff changeset
66
tatsuki
parents: 2
diff changeset
67