changeset 10:321952dbf59a

fix title, column name, etc
author suruga
date Fri, 21 Apr 2017 16:49:22 +0900
parents d8dd8d66a9b5
children 65436c5d9451
files paper/sigos.aux paper/sigos.dvi paper/sigos.log paper/sigos.pdf paper/sigos.tex
diffstat 5 files changed, 27 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/paper/sigos.aux	Fri Apr 21 16:21:02 2017 +0900
+++ b/paper/sigos.aux	Fri Apr 21 16:49:22 2017 +0900
@@ -2,7 +2,7 @@
 \newlabel{fig:non_destructive_tree}{{1}{2}}
 \newlabel{fig:nodepath}{{2}{2}}
 \newlabel{fig:PushPopDemerit}{{3}{3}}
-\newlabel{table:Diffetential API}{{1}{4}}
+\newlabel{table:Diffetential API}{{1}{3}}
 \newlabel{fig:EditDifferencialTree}{{4}{4}}
 \newlabel{fig:Differential_Interface_Traverser}{{5}{4}}
 \newlabel{fig:Tree_ver2}{{6}{5}}
Binary file paper/sigos.dvi has changed
--- a/paper/sigos.log	Fri Apr 21 16:21:02 2017 +0900
+++ b/paper/sigos.log	Fri Apr 21 16:49:22 2017 +0900
@@ -1,4 +1,4 @@
-This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.4.10)  21 APR 2017 16:19
+This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex 2017.4.10)  21 APR 2017 16:45
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
@@ -186,6 +186,11 @@
 (Font)              Font shape `JT1/gt/m/n' tried instead on input line 79.
 LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <14.4> not available
 (Font)              Font shape `JY1/gt/m/n' tried instead on input line 79.
+
+
+Class ipsjpapers Warning: \title is too wide. Break line(s) by \\ on input line
+ 79.
+
 LaTeX Font Info:    External font `cmex10' loaded for size
 (Font)              <10.95> on input line 79.
 LaTeX Font Info:    External font `cmex10' loaded for size
@@ -195,7 +200,6 @@
 LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <12> not available
 (Font)              Font shape `JY1/gt/m/n' tried instead on input line 79.
 
-
 Class ipsjpapers Warning: Missing eabstract env on input line 79.
 
 LaTeX Font Info:    External font `cmex10' loaded for size
@@ -210,46 +214,46 @@
 
 
 ]
-LaTeX Font Info:    Try loading font information for OML+cmr on input line 102.
+LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <9> not available
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 100.
+LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <9> not available
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 100.
+LaTeX Font Info:    Try loading font information for OML+cmr on input line 103.
 
 
 (/usr/local/texlive/2016/texmf-dist/tex/latex/base/omlcmr.fd
 File: omlcmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions
 )
 LaTeX Font Info:    Font shape `OML/cmr/m/n' in size <9> not available
-(Font)              Font shape `OML/cmm/m/it' tried instead on input line 102.
+(Font)              Font shape `OML/cmm/m/it' tried instead on input line 103.
 File: ./pic/nodepath.pdf Graphic file (type pdf)
 
 <./pic/nodepath.pdf> [2]
-LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <9> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 126.
-LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <9> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 126.
 File: ./pic/PushPopDemerit.pdf Graphic file (type pdf)
  <./pic/PushPopDemerit.pdf>
 
 LaTeX Warning: Reference `table:Differential API' on page 3 undefined on input 
-line 167.
+line 168.
 
 
-Overfull \hbox (0.80186pt too wide) in paragraph at lines 173--173
+Overfull \hbox (0.80186pt too wide) in paragraph at lines 174--174
 [][]| 
  []
 
 
-Overfull \hbox (18.31381pt too wide) in paragraph at lines 172--177
+Overfull \hbox (18.31381pt too wide) in paragraph at lines 173--178
  [][][] 
  []
 
 [3]
 File: ./pic/EditDifferencialTree.pdf Graphic file (type pdf)
  <./pic/EditDifferencialTree.pdf>
-Overfull \hbox (22.76657pt too wide) in paragraph at lines 187--188
+Overfull \hbox (22.76657pt too wide) in paragraph at lines 188--189
  [] 
  []
 
 
-Overfull \hbox (14.58702pt too wide) in paragraph at lines 195--196
+Overfull \hbox (14.58702pt too wide) in paragraph at lines 196--197
 []\OT1/cmr/m/n/9 Editor \JY1/mc/m/n/9 が保持している木構造に対して \OT1/cmr/m/n
 /9 addNewChild(
  []
@@ -258,7 +262,7 @@
 <./pic/Differential_Interface_Traverser.pdf> [4]
 File: ./pic/Tree_ver2.pdf Graphic file (type pdf)
  <./pic/Tree_ver2.pdf>
-Overfull \hbox (18.31381pt too wide) in paragraph at lines 233--238
+Overfull \hbox (18.31381pt too wide) in paragraph at lines 234--239
  [][][] 
  []
 
@@ -286,4 +290,4 @@
  929 hyphenation exceptions out of 8191
  30i,13n,49p,1602b,329s stack positions out of 5000i,500n,10000p,200000b,80000s
 
-Output written on sigos.dvi (6 pages, 40624 bytes).
+Output written on sigos.dvi (6 pages, 40696 bytes).
Binary file paper/sigos.pdf has changed
--- a/paper/sigos.tex	Fri Apr 21 16:21:02 2017 +0900
+++ b/paper/sigos.tex	Fri Apr 21 16:49:22 2017 +0900
@@ -36,7 +36,7 @@
 \begin{document}
 
 % 和文表題
-\title{Code Gear、 Data Gear に基づく OS のプロトタイプ}
+\title{非破壊木構造データベース Jungle のサービス利用法にそった改良}
 % 英文表題
 \etitle{}
 
@@ -81,7 +81,7 @@
 % 本文はここから始まる
 
 % Introduce
-\section{研究目的と背景}
+\section{サービス利用に適したデータベース}
 CPUのマルチコア化により、コンピュータのCPU性能が格段に上がった。マルチコアCPUの普及により、一般的なコンピュータの性
 能も向上してきた。コンピュータの性能が向上するにつれ、ソフトウェアやアプリケーションを高速に動作させる需要が求められてきた。しかし、RDBでは、1一人のユーザーがデータを書き込んでいるとき、他のユーザーが書き込みをしてくることで起こるデータの競合を防ぐために、書き込みが終わるまでロックをかける必要がある。これにより、データの編集に時間がかかってしまうという問題がある。また、データのネスト構造を許さない第一正規系を要求するRDBの表構造は、Jsonなどの不定形のデータ構造とミスマッチを起こしてしまうという問題がある。この問題はデータベースのインピーダンスミスマッチと呼ばれている。不定形の構造の変更をトランザクションとしてJsonの一括変更という形で処理する方法が考えられるが、並列処理が中心となってきている今のアプリケーションには向いているとは言えない。これらの問題を解決するため、当研究室では、分散処理環境で動くことができるデータベースを目指して非破壊的木構造データベースJungleを開発している。木構造を扱えることによって、従来のRDBとは異なり、XMLやJsonで記述された構造を、データベースを設計することなく読み込むことが可能である。また、その木をそのままデータベースとして使用することも可能である。非破壊的木構造とは、データの元の木を直接書き換えずに保存し、新しく構築した木のデータ構造を編集する方法である。 これにより、データの書き込み中であっても、元のデータは変更されない為、読み込みも同時に行うことができる。Jungleは、読み込みは高速に行える反面、書き込みの手間は木の形・大きさに依存しており、最悪の場合O(n)となってしまう。また、Index の構築も大幅なネックとなっていた。そこで、本研究ではJungleの木と Index の編集機能の改善を行う。また、分散環境におけるjungleの書き出し速度の測定方法の提案をする。
 \section{非破壊的木構造データベースJungle}
@@ -95,10 +95,11 @@
          \label{fig:non_destructive_tree}
 \end{figure}
 Jungleは名前付きの複数の木の集合からなり、木は複数のノードの集合でできている。ノードは自身の子のリストと属性名、属性値を持ち、データベースのレコードに相応する。通常のレコードと異なるのは、ノードに子供となる複数のノードが付くところである。Jungleでは、子供からの親へのポインタは持たないため、親から子への片方向の参照しかできない。通常のRDBと異なり、Jungleは木構造をそのまま読み込むことができる。例えば、XMLやJsonで記述された構造を、データベースを設計することなく読み込むことが可能である。また、この木を、そのままデータベースとして使用することも可能である。しかし、木の変更の手間は木の構造に依存する。特に非破壊木構造を採用しているJungleでは、木構造の変更の手間はO(1)からO(n)となりえる。つまり、アプリケーションに合わせて木を設計しない限り、十分な性能を出すことはできない。逆に、正しい木の設計を行えば高速な処理が可能である。Jungleは基本的にon memoryで使用することを考えており、一度、木のルートを取得すれば、その上で木構造として自由にアクセスして良い。Jungleは分散データベースを構成するように設計されており、分散ノード間の通信は木の変更のログを交換することによって行われる。持続性のある分散ノードを用いることでJungleの持続性を保証することができる。
-  
-\section{Index}
+
+\section{Jungleの構成要素}
+\subsection*{[Index]}
 Jungleは、非破壊的木構造というデータ構造上、過去の版の木構造を全て保持している。よって、すべての版に独立したIndexが必要となるため、前の版のIndexを破壊すること無く、Indexを更新する必要がある。既存の TreeMap では、一度 Index の複製を行い、その後更新する必要があったため、Indexの更新オーダーがO(n)となっていた。その問題を解決するため、Java 上で関数型プログラミングを行えるライブラリである、 Functional Java の TreeMap を使用し、それを用いて Index 実装を行なった。この TreeMap は、 Jungle と同じようにルートから変更を加えたノードまでの経路の複製を行い、データの更新を行なった際、前の版と最大限データを共有した新しい TreeMap を作成する。Jungle との違いは、木の回転処理が入ることである。これにより複数の版すべてに対応した Index をサポートすることが可能になった。
-\section{NodePath}
+\subsection*{[NodePath]}
 Jungle では、木のノードの位置を NodePath クラスを使って表す。 NodePath クラスはルートノードからスタートし、対象のノードまでの経路を数字を用いて指し示す。また、ルートノードは例外として-1と表記される。 NodePath クラスを用いて \textless -1,0,2,3 \textgreater を表している際の例を(図\ref{fig:nodepath})に示す。
  
   \begin{figure}[htpb]
@@ -109,7 +110,7 @@
         \label{fig:nodepath}
 \end{figure}
  
-\section{非破壊TreeMap}
+\subsection*{[非破壊TreeMap]}
 Jungle の Index は、Functional Java の非破壊 TreeMap を用いて実装を行なっている。しかし、Functional Java の TreeMap は、木の変更の手間が大きい、並列実行処理速度が落ちるなど、実用的な性能を持っていなかった。そのため、Jungleの性能も、TreeMap 部分がネックとなっていた。その問題を解決するため、 Jungle で使用する非破壊 TreeMap を作成した。TreeMap は、Red Black Tree のアルゴリズムを用いている。RedBlackTreeとは二分木探索の一つで、以下の条件を満たした木のことである。
 \begin{itemize}
     \item 各ノードは赤か黒の色を持つ。