Mercurial > hg > Papers > 2015 > tatsuki-thresis
view chapter7.tex @ 4:3ac8c8d97fea
2/16
author | tatsuki |
---|---|
date | Mon, 16 Feb 2015 17:56:08 +0900 |
parents | 470dc248d615 |
children | b0fd781e3b05 |
line wrap: on
line source
\chapter{実装の評価} 前章では、Jungle上にmaTrixを構築する方法と、構築に必要なAPIの実装について述べた。 本章では、実装を行ったJungleの性能評価を行う。 \label{chap:poordirection} \section{実験環境} \begin{table}[h] \caption{実験環境} \label{list:VM} \begin{center} \begin{tabular}{|l|l|} \hline 名前 & 概要 ~ \\ \hline CPU & ~ \\ \hline Memory & ~ \\ \hline OS & ~ \\ \hline JavaVM & 1.8.0-25 ~ \\ \hline \end{tabular} \end{center} \end{table} \newpage \section{検索のAPIの測定} Jungleに対する検索APIの測定を行う。 測定には、maTrixが保持しているデータにアクセスする際に用いる関数のうちの1つである、boolen isActive(String personId,String version)という関数を用いる。 isActiveは、第一引数で与えたPersonIdを持つ人物が、第二引数で与えられた構成情報モデルのversionに対応した人物Treeにいるかどうかを調べる関数である。 実験の結果は図\ref{fig:isActive}となる。横軸は人物Treeにいる人の数を表しており、縦軸は探索にかかった時間を表している。 \begin{figure}[h] \begin{center} \includegraphics[bb=0 0 360 252]{fig/isActive.pdf} \caption{inActiveの実行時間} \label{fig:isActive} \end{center} \end{figure} isActiveの実行時間は、Indexを使用しない場合は、Personの数が増えると比例して増えていくのに対し、Indexを使用するとPersonの数が増えても実行時間は変わらなかった。 この結果より、JungleのIndexの計算量はO(logn)であることがわかる。 \clearpage \section{read\&writeの測定} 1秒間の間Jungleに対し書き込みと、データの検索を同時に行い、Jungleの書き込みがどの程度検索に影響をおよぼすかを調べる。 測定の条件は、Jungleが保持しているPerson数は100、書き込みに1Thread使用し、読み込みを行うThreadは1から12個まで使用する。read関数は実験1と同じく関数isActiveを用いた。 実験の結果は図\ref{fig:thread}となる。横軸はJungleに対し、readを行うthread数、縦軸はreadを行った回数を表す。 \begin{figure}[h] \begin{center} \includegraphics[bb=0 0 360 252]{fig/readMaltiThread.pdf} \caption{read\&writeの測定} \label{fig:thread} \end{center} \end{figure} Jungleは書き込みを行う際、読み込みに対するロックをかけないため、書き込みを行ってもほとんど読み込みに影響を及ぼさない。 しかし、書き込みと読み込みを同時に行っているread\&writeの方は、書き込み分の負荷が多くかかっているため、やはりreadのみと比べると多少遅くなっている。 図\ref{fig:thread}でもThreadCount5まではほとんど差は開いていない。 しかし、6Thread目以降はread\&writeの、8Thread目以降ではreadOnlyのreadCountの上昇量がゆるやかになり、差が開きだしている。 理由として、Jungleの処理限界が来たためであると推測でき、read\&writeがreadOnlyより早く処理限界が来た理由は、writeの分readOnlyよりリソースを多く使用しているためだと推測できる。 本実験で、Jungleは書き込み中でも高速に検索が行えることがわかった。 これはつまり、スケールアウトを行うためにデータのコピーを行う際、データベースをロックすること無く行えるということである。