diff paper/final_main/prepaper/finalPre.tex @ 18:fb2cbbed0f05

add prepaper
author suruga
date Mon, 19 Feb 2018 02:03:13 +0900
parents
children 68dfd08c74ba
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/final_main/prepaper/finalPre.tex	Mon Feb 19 02:03:13 2018 +0900
@@ -0,0 +1,116 @@
+\documentclass[twocolumn,twoside,9.5pt]{jarticle}
+\usepackage[dvipdfmx]{graphicx}
+\usepackage{picins}
+\usepackage{fancyhdr}
+\usepackage{abstract}
+\usepackage{url}
+%\pagestyle{fancy}
+\lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 卒業研究発表会}
+\rhead{}
+\cfoot{}
+
+\setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
+\setlength{\headheight}{0mm}
+\setlength{\headsep}{5mm}
+\setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
+\setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
+\setlength{\textwidth}{181mm}
+\setlength{\textheight}{261mm}
+\setlength{\footskip}{0mm}
+\pagestyle{empty}
+
+\input{dummy.tex}
+\renewcommand{\abstractname}{Abstract}
+\begin{document}
+\title{分散版Jungleデータベースの性能測定方法}
+%\title{Supporting NAT in Screen Sharing System TreeVNC}
+\author{145762E 氏名 {仲松}{栞} 指導教員 : 河野 真治}
+\date{}
+\twocolumn [
+\maketitle
+\begin{onecolabstract}
+%アブスト
+\end{onecolabstract}]
+\thispagestyle{fancy} 
+
+\section{研究背景}
+スマートフォンやタブレット端末の普及にともない、年々Webサービスの利用者は増加した一方で、データ量が増大し、サーバ側への負荷も増加している。
+これを解決するため、Webサービスには、よりシステムの処理能力を拡張する性質である、スケーラビリティが求められてきている。
+
+スケーラビリティとは、高性能のマシンを用意したり、複数のマシンに処理を分散させたりすることで、システムの処理能力を向上させる性能を指す。本実験で指すスケーラビリティとは、後者の方である。Webサービスにスケーラビリティを付与する方法の1つに、データベースにスケーラビリティを持たせる事が考えられる。
+
+そこで、当研究室ではスケーラビリティを持つデータベースとして木構造を持つ分散データベースJungleを開発している。方法としては、分散環境上で複数のデータベースJungleを起動することで、処理を分散させる。
+
+これまでに行われた分散環境上でのJungleの性能を検証する実験[2]では、使用するテストプログラムのフロントエンドにWebサーバーJettyが使用されており、純粋なJungleの性能は測定できていなかった。今回は、新たに改良されたJungleの性能を、Webサーバーを取り除いたTestプログラムを用いて測定することを目的とする。
+
+\section{分散データベースJungle}
+Jungleは、当研究室で開発を行っている木構造の分散データベースで、Javaを用いて実装されている。
+
+Jungleは名前付きの複数の木の集合からなり、木は複数のノードの集合でできている。ノードは自身の子のリストと属性名、属性値を持ち、データベースのレコードに相応する。通常のレコードと異なるのは、ノードに子供となる複数のノードが付くところである。
+
+通常のRDBと異なり、Jungleは木構造をそのまま読み込むことができる。例えば、XMLやJsonで記述された構造を、データベースを設計することなく読み込むことが可能である。また、この木を、そのままデータベースとして使用することも可能である。しかし、木の変更の手間は木の構造に依存する。特に非破壊木構造\cite{jungle:2015}を採用しているJungleでは、木構造の変更の手間はO(1)からO(n)となりえる。つまり、アプリケーションに合わせて木を設計しない限り、十分な性能を出すことはできない。逆に、正しい木の設計を行えば高速な処理が可能である。
+
+Jungleはデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとしてTreeOperationLog\cite{log:2013}に残している。Jungleの分散ノード間の通信は木の変更のTreeOperationLogを交換することによって、分散データベースを構成するよう設計されている。
+
+\section{分散フレームワークAliceによる分散環境の構築}
+本研究では、分散環境上でのJungleの性能を確認する為、VM32台分のサーバーノードを用意し、それぞれでJungleを起動することで、Jungle間で通信をする環境をつくる。
+Jungleを起動したサーバーノード間の通信部分を、当研究室で開発している並列分散フレームワークAlice[1]にて再現する。
+
+Aliceには、ネットワークのトポロジーを構成するTopologyManager\cite{log:2013}という機能が備わっている。TopologyManagerに参加表明をしたサーバーノードに順番に、接続先のサーバーノードのIPアドレス、ポート番号、接続名を送り、受け取ったサーバーノードはそれらに従って接続する。
+今回、TopologyManagerはJungleをのせたVM32台分のサーバーノードを、木構造を形成するように采配する(図\ref{fig:topologymanager} )。
+
+トポロジー構成後、Jungle間の通信でのデータ形式にはTreeOperationLogを利用する。TreeOperationLogには、ノードの編集の履歴などの情報が入っている。TreeOperationLogをAliceによって他のJungleへ送ることで、送信元のJungleと同じ編集を行う。こうして、Jungle間でのデータの同期を可能にしている。
+\begin{figure}[!htbp]
+    \centering
+    \includegraphics[width=70mm]{pic/topologymanager3.pdf}
+    \caption{AliceによるJungleの木構造トポロジーの形成}
+    \label{fig:topologymanager}
+\end{figure}
+\section{TORQUE Resource Manager}
+分散環境上でのJungleの性能を測定するにあたり、VM32台にJungleを起動させた後、それぞれでデータを書き込むプログラムを動作させる。プログラムを起動する順番やタイミングは、TORQUE Resource Manager\cite{torque:2014}というジョブスケジューラーによって管理する。
+
+TORQUE Resource Manager は、ジョブを管理・投下・実行する3つのデーモンで構成されており、
+ジョブの管理・投下を担うデーモンが稼働しているヘッダーノードから、ジョブの実行を担うデーモンが稼働している計算ノードへジョブが投下される(図\ref{fig:torque} )。
+  \begin{figure}[!htbp]
+    \begin{center}
+        \includegraphics[width=70mm]{./pic/torque.pdf}
+    \end{center}
+        \caption{TORQUEの構成}
+         \label{fig:torque}
+\end{figure}
+
+ユーザーはジョブを記述したシェルスクリプトを用意し、スケジューラーに投入する。その際に、利用したいマシン数やCPUコア数を指定する。TORQUEは、ジョブに必要なマシンが揃い次第、受け取ったジョブを実行する。
+\section{性能測定用プログラム}
+これまでの分散環境上でのJungleの性能を測定する実験で使われたテストプログラムは、フロントエンドにJettyというWebサーバーが使われていた。
+しかし、Webサーバーが仲介した測定結果となってしまい、純粋なJungleの性能を測定できないという問題がある。
+そこで、Webサーバーを取り除き、これまでの研究により純粋にJungleの性能を測定するプログラムを作成した。
+
+ます、Jungleを起動する際に、木構造における子ノードに、データを複数書き込む機能である、-write オプション、書き込む回数を指定できる -count オプション を実装した。
+複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータをmergeしていく。また、今回性能を測定するにあたり、rootノードに到達したデータが書き込まれた時間を計測するプログラムを、Aliceに実装した。
+
+\section{評価実験}
+Jungleの分散性能を測定するにあたり、複数台のJungleを通信させ、JungleからJungleに対する書き込みにかかる時間を計測する。複数台のJungleを分散させる為に、学内共用の仮想マシンを32台使用した。分散したJungle同士の通信部分には、当研究室で開発している分散フレームワークAliceの機能であるTopologyManagerを使用する。TopologyManagerの起動には、仮想マシン32台のうちの1台を使用する。
+学科の仮想マシン31台上でそれぞれ1台ずつJungleを立ち上げ、ツリー型のトポロジーを構成する。そのうち16台のJungleに対して100回ずつデータを書き込む。子ノードのJungleは、次々と親ノードのJungleへデータを書き込む。最終的にルートノードのJungleへデータが到達し、書き込まれた時間を計測し、平均を取る。31台中16台のJungleから書き込まれたデータがルートノードのJungleへ書き込まれる、一回あたりの時間を計測する実験である。(図\ref{fig:gaiyou} )
+
+\begin{figure}[!htbp]
+    \begin{center}
+        \includegraphics[width=70mm]{./pic/gaiyou.pdf}
+    \end{center}
+        \caption{複数のjungleに書き込まれたデータがrootのjungleへ到達する時間を計測する}
+         \label{fig:gaiyou}
+\end{figure}
+
+\section{まとめ}
+本研究では、Jungleの純粋な性能を測定するためのプログラムをJungle,Aliceに実装した。また、それらの機能を使用し、実際にJungleの性能評価を行なった。
+
+Jungleへの書き込みを行う機能である -write オプションと、書き込みの回数を指定できる -count オプションの実装を行なった。
+
+ツリートポロジーを構成したJungleの分散環境上で、子ノードのJungleに書き込まれたデータが、rootノードのJungleに到達し、書き込みが終了するまでの時間を表示する、 --showtime オプションの実装を行なった。
+
+今回Jungleの分散性能の評価を行い、()がわかった。
+
+今後の課題として、()を行う。
+\nocite{*}
+\bibliographystyle{junsrt}
+\bibliography{reference}
+\end{document}
\ No newline at end of file