view abstract.tex @ 20:54ba27c57b5e

commit
author tatsuki
date Fri, 10 Feb 2017 13:21:04 +0900
parents d5306971efbf
children 8d1f5ab7b420
line wrap: on
line source

\begin{abstract}
プログラムからデータを分離して扱うデータベースには、
プログラム中のデータ構造と Relational DataBase(RDB) の表構造のインピーダンスミスマッチという問題がある。
データベースのレコードをプログラム中のオブジェクトとして使えるOR Mapperや、
データベース自体も、表に特化したKey Value Store、Jsonなどの不定形のデータ構造を格納するように機能拡張されてきている。
しかし、プログラム中のデータは複雑な構造をメモリ上に構築しており、これらの方法でもまだギャップがある。

そこで当研究室では、これらの問題を解決した、煩雑な設計を行わずプログラム内部に木構造を格納できるデータベース Jungle を提案している。
Jungleは、木構造の変更を非破壊的、つまり、元の木を保存しつつ、新しい木を構築する方法を取り、
木のルートをアトミックに入れ替えることでトランザクションを実現する。
プログラムは、この木を内部のデータ構造として直接取り扱うことができるので、読み出し時にデータベースに問い合わせる必要がない。
Jungleは、全体の整合性ではなく、木ごとに閉じた局所的な整合性を保証している。
また、整合性のある木同士をマージすることで新しい整合性のある木を作り出すことも可能であるため、データの伝搬も容易である。

Jungleは、読み込みは高速に行える反面、書き込みの手間は木の形・大きさに依存しており、最悪の場合O(n)となってしまう。
また、Indexの構築も大幅なネックとなっていた。
そこで、本研究では、Jungleの木の構築・編集機能の改善を行う。
その後、実際にJungleを使用したアプリケーションを開発・運用する。

改善後行った性能測定では、木の編集機能の高速化を確認できた。
また、PostgreSQL・MongoDBと読み込み速度の比較を行った。
結果、これらのDB以上の性能を確認できた。

残された課題として木の設計手法の確立、 メモリ内にある木構造の破棄についての課題が確認された.

\end{abstract}