Mercurial > hg > Papers > 2017 > suruga-midterm > src
view midterm.tex @ 7:cf949ad77abe default tip
version-6
author | suruga |
---|---|
date | Fri, 27 Oct 2017 16:53:05 +0900 |
parents | c4d0b3739d1f |
children |
line wrap: on
line source
\documentclass[twocolumn,twoside,9.5pt]{jarticle} \usepackage[dvipdfmx]{graphicx} \usepackage{picins} \usepackage{fancyhdr} \usepackage{here} %\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} \begin{document} \title{分散データベースJungleの評価} \author{145762E 氏名 仲松栞 {}{} 指導教員 : 河野 真治} \date{} \maketitle \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で記述された構造を、データベースを設計することなく読み込むことが可能である。また、この木を、そのままデータベースとして使用することも可能である。しかし、木の変更の手間は木の構造に依存する。特に非破壊木構造[3]を採用しているJungleでは、木構造の変更の手間はO(1)からO(n)となりえる。つまり、アプリケーションに合わせて木を設計しない限り、十分な性能を出すことはできない。逆に、正しい木の設計を行えば高速な処理が可能である。 Jungleはデータの変更を非破壊で行なっており、編集ごとのデータをバージョンとしてTreeOperationLog[2]に残している。Jungleの分散ノード間の通信は木の変更のTreeOperationLogを交換することによって、分散データベースを構成するよう設計されている。 \section{分散フレームワークAliceによる分散環境の構築} 本研究では、分散環境上でのJungleの性能を確認する為、VM32台分のサーバーノードを用意し、それぞれでJungleを起動することで、Jungle間で通信をする環境をつくる。 Jungleを起動したサーバーノード間の通信部分を、当研究室で開発している並列分散フレームワークAlice[1]にて再現する。 Aliceには、ネットワークのトポロジーを構成するTopologyManager[2]という機能が備わっている。TopologyManagerに参加表明をしたサーバーノードに順番に、接続先のサーバーノードのIPアドレス、ポート番号、接続名を送り、受け取ったサーバーノードはそれらに従って接続する。 今回、TopologyManagerはJungleをのせたVM32台分のサーバーノードを、木構造を形成するように采配する(図\ref{fig:topologymanager} )。 トポロジー構成後、Jungle間の通信でのデータ形式にはTreeOperationLogを利用する。TreeOperationLogには、ノードの編集の履歴などの情報が入っている。TreeOperationLogをAliceによって他のJungleへ送ることで、送信元のJungleと同じ編集を行う。こうして、Jungle間でのデータの同期を可能にしている。 \begin{figure}[H] \centering \includegraphics[width=70mm]{pic/topologymanager.pdf} \caption{AliceによるJungleの木構造トポロジーの形成} \label{fig:topologymanager} \end{figure} \section{TORQUE Resource Manager} 分散環境上でのJungleの性能を測定するにあたり、VM32台にJungleを起動させた後、それぞれでデータを書き込むプログラムを動作させる。プログラムを起動する順番やタイミングは、TORQUE Resource Manager[1]というジョブスケジューラーによって管理する。 TORQUE Resource Manager は、ジョブを管理・投下・実行する3つのデーモンで構成されており、 ジョブの管理・投下を担うデーモンが稼働しているヘッダーノードから、ジョブの実行を担うデーモンが稼働している計算ノードへジョブが投下される(図\ref{fig:torque} )。 \begin{figure}[ht] \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の性能を測定するテストプログラムを作成する。 テストプログラムは、木構造における子ノードに、データを複数書き込む機能を提供する。 末端の複数の子ノードにデータをそれぞれ書き込み、最終的にrootノードへデータをmergeしていく(図\ref{fig:logupdatetest} )。 測定範囲は、 \begin{itemize} \item 末端ノードからrootノードへデータが到達する時間 \item 末端Jungleからrootノードを介して別の末端ノードへデータが到達する時間 \end{itemize} の2点を計測する予定である。 \begin{figure}[H] \centering \includegraphics[width=70mm]{pic/logupdatetest.pdf} \caption{TestプログラムによるJungleの性能測定} \label{fig:logupdatetest} \end{figure} \section{今後の作業} 今後の方針として、本研究室で開発している並列分散フレームワークであるAlice[1]とTORQUE Resource Manager[1]を用いて、分散環境上でのJungleの性能を測定する。 測定後は、結果をふまえ、Jungleの性能を向上させる為のmergeアルゴリズム等を考案・実装し、スケーラビリティを持つ実用的な分散データベースの開発を目指す。 \begin{thebibliography}{9} \bibitem{1} 杉本 優 : 分散フレームワーク Alice上の Meta Computation と応用, \bibitem{2} 大城 信康 : 分散 Database Jungle に関する研究, \bibitem{3} 金川 竜己 : 非破壊的木構造データベース Jungle とその評価 \bibitem{4} 大城 信康, 杉本 優, 河野真治 : Data Segment の分散データベースへの応用, 日本ソフトウェア科学会(2013). \end{thebibliography} \end{document}