comparison paper/chapter3.tex @ 48:88b11a3afb93

describe deos
author Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
date Fri, 07 Feb 2014 01:02:26 +0900
parents e32c9a53310c
children 0a8d66c9ccd1
comparison
equal deleted inserted replaced
47:e32c9a53310c 48:88b11a3afb93
1 \chapter{Haskellによる\\並列データベースの実装}\label{ch:impl} 1 \chapter{Haskellによる\\並列データベースの実装}\label{ch:impl}
2 本章では, 並列データベース Jungle の実装について述べる. 2  本章では, 並列データベース Jungle の実装について述べる.
3 3
4 \section{木構造データベース Jungle} 4 \section{木構造データベース Jungle}
5 非破壊的木構造データベース Jungle は, Haskell で実装された並列データベースである. 5 非破壊的木構造データベース Jungle は, Haskell で実装された並列データベースである.
6 非破壊的木構造の方法に則った関数を提供する. 6 非破壊的木構造の方法に則った関数を提供する.
7 7
22 Jungle のデータ型について, ひとつずつ説明する. 22 Jungle のデータ型について, ひとつずつ説明する.
23 23
24 \begin{table}[!htbp] 24 \begin{table}[!htbp]
25 \label{tab:components} 25 \label{tab:components}
26 \begin{center} 26 \begin{center}
27 \begin{tabular}{|c||c|c|} \hline
28 型名 & 概要 \\ \hline
29 Jungle & 木の作成・取得を担当する. \\ \hline
30 Tree & 木の名前とルートノードの情報を保持している. \\ \hline
31 Node & 基本的なデータ構造, 子と属性を任意の数持てる. \\ \hline
32 \end{tabular}
33 \end{center}
34 \caption{Jungle が持つデータ型}
35 \end{table}
36
37 \begin{table}[!htbp]
38 \label{tab:components}
39 \begin{center}
27 \begin{tabular}{|c||c|} \hline 40 \begin{tabular}{|c||c|} \hline
28 型名 & 概要 \\ \hline 41 型名 & データ構造 \\ \hline
29 Jungle & 木の作成・取得を担当する. \\ \hline 42 Jungle & Jungle (TVar (Map String Tree)) \\ \hline
30 Tree & 木の名前とルートノードの情報を保持している. \\ \hline 43 Tree & Tree (TVar Node) String \\ \hline
31 Node & 基本的なデータ構造, 子と属性を任意の数持てる. \\ \hline 44 Node & Node (Map Int Node) (Map String ByteString) \\ \hline
32 \end{tabular} 45 \end{tabular}
33 \end{center} 46 \end{center}
34 \caption{Jungle が持つデータ型} 47 \caption{データ型のデータ構造}
35 \end{table} 48 \end{table}
36 49
37 \subsection{Jungle} 50 \subsection{Jungle}
38 Jungle は木構造の集まりを表現する. 51 Jungle は木構造の集まりを表現する.
39 木には名前がついており, Tree の情報と一緒に保持している. 52 木には名前がついており, Tree の情報と一緒に保持している.
91 これは, 各スレッドから木構造を新たに作成できるようにするためである. 104 これは, 各スレッドから木構造を新たに作成できるようにするためである.
92 STM は, スレッド間でデータを共有するためのツールである. STM を利用することでロック忘れによる競合状態や, デッドロックといった問題から解放される. 105 STM は, スレッド間でデータを共有するためのツールである. STM を利用することでロック忘れによる競合状態や, デッドロックといった問題から解放される.
93 Jungle のデータ構造の Map の前に付いている TVar というのは, Transactional variablesの略で, STM で管理する変数に対して利用する. 106 Jungle のデータ構造の Map の前に付いている TVar というのは, Transactional variablesの略で, STM で管理する変数に対して利用する.
94 107
95 \subsubsection{Jungle と木の作成} 108 \subsubsection{Jungle と木の作成}
96 Jungle は, Mapで木を管理しているため, 複数の非破壊的木構造を持つことができる(図\ref{fig:jungle}). 109 Jungle は, 複数の非破壊的木構造を持つため、Map で木を管理している(図\ref{fig:jungle}).
97 110
98 \begin{figure}[!htbp] 111 \begin{figure}[!htbp]
99 \begin{center} 112 \begin{center}
100 \includegraphics[scale=0.7]{./images/jungle.pdf} 113 \includegraphics[scale=0.7]{./images/jungle.pdf}
101 \end{center} 114 \end{center}