Mercurial > hg > Papers > 2016 > tatsuki-prosym
changeset 12:05ab591d3a24
abstract and introduction fixes
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 10 Nov 2016 19:26:24 +0900 |
parents | 36f400a632c1 |
children | 1e543b67f90e |
files | abst.tex introduction.tex |
diffstat | 2 files changed, 23 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/abst.tex Thu Nov 10 19:09:57 2016 +0900 +++ b/abst.tex Thu Nov 10 19:26:24 2016 +0900 @@ -1,6 +1,12 @@ \begin{abstract} -プログラムからデータを分離してRDBとして扱う手法には、プログラム中のデータ構造とRDBの表構造がマッチしないという問題が知られており、データベース自体もRDBと方向の違う表に特化したKey Value Storeや、Jsonなどの不定形のデータ構造を格納するように機能拡張されてきている。 +プログラムからデータを分離して扱うデータベースには、 +プログラム中のデータ構造とRDBの表構造のインピーダンスミスマッチという問題がある。 +データベースのレコードをプログラム中のオブジェクトとして使えるOR Mapperや、 +データベース自体もRDBと方向の違う表に特化したKey Value Storeや、Jsonなどの不定形のデータ構造を格納するように機能拡張されてきている。 +しかし、プログラム中のデータは複雑な構造をメモリ上に構築しており、これらの方法でもまだギャップがある。 今回提案する木構造データベースJungleはプログラム内部に直接木構造を構築し、そのルートをアトミックに入れ替えることでトランザクションを実現する。 -また木構造の変更を非破壊的、つまり、元の木を保存しつつ、新しい木を構築する方法を取る。プログラムは、この木を内部のデータ構造として直接取り扱うことができるので、読み出し時にデータベースに問い合わせる必要がない。また汎用の木構造を持つので、データベースを特に設計しなくても、あるがままの形で格納することが可能になっている。Jungleは分散構成も可能である。 +また木構造の変更を非破壊的、つまり、元の木を保存しつつ、新しい木を構築する方法を取る。 +プログラムは、この木を内部のデータ構造として直接取り扱うことができるので、読み出し時にデータベースに問い合わせる必要がない。 +また汎用の木構造を持つので、データベースを特に設計しなくても、あるがままの形で格納することが可能になっている。Jungleは分散構成も可能である。 本論文ではJungleデータベースの構造とこれを用いたアプリケーション、実装時に発生した問題と解決方法について解説する。 \end{abstract}
--- a/introduction.tex Thu Nov 10 19:09:57 2016 +0900 +++ b/introduction.tex Thu Nov 10 19:26:24 2016 +0900 @@ -1,8 +1,16 @@ -\section{研究目的と背景} -プログラムからデータを分離してRDBとして扱う手法には、プログラム中のデータ構造とRDBの表構造がマッチしないという問題が知られている。 -例えばRPGゲーム中のユーザが持つアイテムという単純なものでもRDBではユーザとアイテムの組をキーとする巨大な表として管理することになり、ユーザオブジェクトが持つアイテムリストというプログラムの中のデータ構造とのギャップが大きい。 -Mapなどの手法や持続的データ構造などの研究が行われてきたが解決には至っていない。一方でデータベース自体もRDBと方向の違う表に特化したKey Value Storeや、Jsonなどの不定形のデータ構造を格納するように機能拡張されてきている。 -当研究室では、これらの問題を解決した煩雑なデータ設計が必要のない データベースを目指して非破壊的木構造データベースJungleを開発している。 +\section{Jungle DBによるインピーダンスミスマッチの解決} + +プログラム中のデータ構造とRDBの表構造には大きなギャップがある。 +例えばRPGゲーム中のユーザが持つアイテムという単純なものでもRDBではユーザとアイテムの組をキーとする巨大な表として管理することになる。 +プログラム中ではユーザが持つアイテムリストという簡単な構造を持つが、データのネスト構造を許さない第一正規形を要求するRDBとは相容れない。 +レコードをプログラム中のオブジェクトに対応させるOR Mapという技術では、これを本質的には解決することはできない。 +そこで、 MySQLやPosgreSQLなどはJsonなどの不定形のデータ構造を格納するように機能拡張されるようになってきた。 +しかし、不定形の構造の変更をトランザクションとして、どのように処理するかはJsonの一括変更という形で処理されてしまっており、 +並列処理が中心となってきている今のアプリケーションには向いているとは言えない。つまり、この拡張はRDBよりの拡張であり、 +並列処理を含むプログラミングからの要請とのミスマッチが残っている。 +当研究室では、これらの問題を解決した煩雑なデータ設計が必要のない Jungle データベースを提案している。 Jungleはプログラム内部に直接木構造を構築し、そのルートをアトミックに入れ替えることでトランザクションを実現する。 -また木構造の表現に単一リンクを用い、変更を非破壊的つまり、元の木を保存しつつ、新しい木を構築する方法を取る。プログラムは、この木を内部のデータ構造として直接取り扱うことができるので、読み出し時にデータベースに問い合わせる必要がない。また汎用の木構造を持つので、データベースを特に設計しなくても、あるがままの形で格納することが可能になっている。 -本研究では実際にJungle上に実際に複数のアプリケーションを実装し、Jungleの表現力、機能の十分性、実用的な性能があるか、実証実験を行う。 +また木構造の表現に単一リンクを用い、変更を非破壊的つまり、元の木を保存しつつ、新しい木を構築する方法を取る。 +これにより複数のスレッドからでも木構造を安全に扱うことができる。 +プログラムは、この木を内部のデータ構造として直接取り扱うことができるので、読み出し時にいちいちデータベースに問い合わせる必要がない。また汎用の木構造を持つので、データベースを特に設計しなくても、あるがままの形で格納することが可能になっている。 +本研究では実際にJungle上に実際に複数のアプリケーションを実装し、Jungleの表現力、機能の十分性、実用的な性能があるか、実証実験を行った。その時に明らかになった木構造データベースの問題点についても考察する。