comparison paper/sigos.tex @ 17:6caa52eb6bb8

sigos_ver13
author suruga
date Fri, 21 Apr 2017 22:04:41 +0900
parents 3d6da7e52aca
children c7d6641b9d62
comparison
equal deleted inserted replaced
16:a94c70db18c9 17:6caa52eb6bb8
276 一つの木が極端に大きくなる場合もあるが、それを分散して格納するのは難しい。 276 一つの木が極端に大きくなる場合もあるが、それを分散して格納するのは難しい。
277 ここでは、一つの木は一つのノードに納まる大きさだと仮定する。 277 ここでは、一つの木は一つのノードに納まる大きさだと仮定する。
278 Jungleの木は信頼性向上とアクセス速度の向上のために、複数のノードに格納される。 278 Jungleの木は信頼性向上とアクセス速度の向上のために、複数のノードに格納される。
279 木の変更は複数のノードを伝搬し、特定のJungleの木のルートノードに到達する。 279 木の変更は複数のノードを伝搬し、特定のJungleの木のルートノードに到達する。
280 そこで、木の状態が確定する。 280 そこで、木の状態が確定する。
281 一つのルートノードではなく、複数のノードに対して、多数決などの方法を用いることも考えられるが、 281 一つのルートノードではなく、複数のノードに対して、多数決Commitなどの方法を用いることも考えられるが、
282 今回は単一のルートノードを用いる。 282 今回は単一のルートノードを用いる。
283 この方法は、読み込みに対して書き込みが少ない場合、あるいは書き込みが単一ノードのみからくる場合に有効であると考えられる。 283 この方法は、読み込みに対して書き込みが少ない場合、あるいは書き込みが単一ノードのみからくる場合に有効であると考えられる。(表\ref{fig:WriteTime})
284 284
285 従来のJungleDBの分散機能の測定はJetty Webサーバー込みで行なっており、DBに対する負荷は直接的には大きくなかった。 285 従来のJungleDBの分散機能の測定はJetty Webサーバー込みで行なっており、DBに対する負荷は直接的には大きくなかった。
286 JungleDBに対して十分な負荷をかけるhttpリクエストを生成するのは困難であった。 286 JungleDBに対して十分な負荷をかけるhttpリクエストを生成するのは困難であった。
287 そこで、Jungleの分散性能そのものを調べるために、Webサーバー抜きで測定したい。 287 そこで、Jungleの分散性能そのものを調べるために、Webサーバー抜きで測定したい。
288 288
301 301
302 今回、実験で分散構造としてJungleの動くノード16台を木構造に接続する。 302 今回、実験で分散構造としてJungleの動くノード16台を木構造に接続する。
303 この木のルートノードをルートjungleと呼び、末端ノードをリーフjungleと呼ぶ。 303 この木のルートノードをルートjungleと呼び、末端ノードをリーフjungleと呼ぶ。
304 \begin{figure}[htpb] 304 \begin{figure}[htpb]
305 \begin{center} 305 \begin{center}
306 \includegraphics[width=60mm]{./pic/WriteTime.pdf} 306 \includegraphics[width=80mm]{./pic/WriteTime.pdf}
307 \end{center} 307 \end{center}
308 \caption{今回測定する木構造} 308 \caption{複数のルートノードを持つ木構造}
309 \label{fig:WriteTime} 309 \label{fig:WriteTime}
310 \end{figure} 310 \end{figure}
311 まず、末端のJungleにUserが書き込みをし、Jungleからuserにレスポンスが返ってくるまでの時間を測定する。 311 まず、末端のJungleにUserが書き込みをし、Jungleからuserにレスポンスが返ってくるまでの時間を測定する。
312 次に、Jungleの変更がルートのJungleにコピーされるまでの時間の測定方法を提案するJungle同士の接続には、当研究室で開発している分散フレームワークであるAliceを用いる。 312 次に、Jungleの変更がルートのJungleにコピーされるまでの時間の測定方法を提案する。Jungle同士の接続には、当研究室で開発している分散フレームワークであるAliceを用いる。
313 \section{まとめ} 313 \section{まとめ}
314 本研究では、始めに破壊的木構造データベースであるJungleについて説明を行い、次にJungleの性能を上げるために実装した点を挙げ、最後に分散環境での Jungle の書き出し実験の手法について述べた。実装した点は、まず Jungle の Index の Update を高速化させるために、前の版の Index と値を共有しながら Update を行う、差分 Update の実装を行なった。次に、線形の木を正順で構築する際、木の変更の手間が O(n) になる問題を解決するために、 Differential Jungle Tree の実装をした。 Differential Jungle Tree は、自身の末尾のノードの情報を保持している。この末尾ノードを使用して、木の編集や検索を行う。次に、自動的に木のバランスを行い、最適な形の木構造を構築する Red Black Jungle Tree を実装した。 Red Black Jungle Tree は、自身が Index を構築する Default Jungle Tree により、編集できる。また、ノードは、木のバランスによって Path が編集ごとに変わってしまうため、属性名と属性値のペアでノードを指定できる、 Red Black Jungle Tree Editor の実装を行なった。 314 本研究では、始めに破壊的木構造データベースであるJungleについて説明を行い、次にJungleの性能を上げるために実装した点を挙げ、最後に分散環境での Jungle の書き出し実験の手法について述べた。実装した点は、まず Jungle の Index の Update を高速化させるために、前の版の Index と値を共有しながら Update を行う、差分 Update の実装を行なった。次に、線形の木を正順で構築する際、木の変更の手間が O(n) になる問題を解決するために、 Differential Jungle Tree の実装をした。 Differential Jungle Tree は、自身の末尾のノードの情報を保持している。この末尾ノードを使用して、木の編集や検索を行う。次に、自動的に木のバランスを行い、最適な形の木構造を構築する Red Black Jungle Tree を実装した。 Red Black Jungle Tree は、自身が Index を構築する Default Jungle Tree により、編集できる。また、ノードは、木のバランスによって Path が編集ごとに変わってしまうため、属性名と属性値のペアでノードを指定できる、 Red Black Jungle Tree Editor の実装を行なった。
315 また、Jungleの分散機能に対する測定手法を提案した。 315 また、Jungleの分散機能に対する測定手法を提案した。
316 今後の課題として、Jungleは非破壊でデータを保持し続けるため、非常に多くのメモリを使用してしまう。ある程度の単位で過去のデータの掃除を行いたい。Jungleは、過去の木に対するアクセスをサポートしているため、データの掃除を行うタイミングが明確ではない。なので、メモリから追い出すタイミングを定義する必要がある。 316 今後の課題として、Jungleは非破壊でデータを保持し続けるため、非常に多くのメモリを使用してしまう。ある程度の単位で過去のデータの掃除を行いたい。Jungleは、過去の木に対するアクセスをサポートしているため、データの掃除を行うタイミングが明確ではない。なので、メモリから追い出すタイミングを定義する必要がある。
317 317