view chapter1.tex @ 6:b0fd781e3b05

2/17
author tatsuki
date Tue, 17 Feb 2015 09:54:03 +0900
parents 470dc248d615
children ceeb95a12d64
line wrap: on
line source

\chapter{知的構造を格納するためのデータベース}
\label{chap:introduction}
\pagenumbering{arabic}

%序論の目安としては1枚半ぐらい.
%英語発表者は,最終予稿の「はじめに」の英訳などを載せてもいいかも.

\section{研究目的}
知識を記した書物等において、節が複数集まって章になり、章が集まって書物になるように、我々があつかっている知識は主に木構造である。
RDB上に木構造を格納する際、nodeとnodeの関係を定義したテーブルを用意するが、これだとデータ構造が複雑になってしまい、検索や更新が非効率的なものとなってしまう。
そのため、もっと木構造を簡単にデータベースで扱いたい。


また、データベースを使用するウェブサービスの規模も年々大きなものとなり、それに比例してデータベースへの負荷も増大し、その結果サービスが停止する自体が多々見られるようになった。
そのため、データベースの処理性能はそのままサービスの質につながっている重要な項目となっている。

データベースの処理性能を向上させる代表的な方法として、ハードウェア的に高性能なマシンを用意することで処理性能を
上げるスケールアップと、汎用的なマシンをいくつも用意し、処理を分散させることで処理性能を上げるスケールアウトの
2つがある。
単純に処理能力を上げたいのなら、スケールアップは有効ではあるが、単一のマシンを高性能にするのにも限界があり、い
ずれはそのマシンの限界を超える負荷がかかる可能性もある。
それに対しスケールアウトは、処理が重くなるに連れて汎用的なマシンを順次追加していくことで性能を上げるため、ハー
ドウェア的に高性能なマシンを要求せずにすみ、柔軟な対応を取ることが出来るため、データベースの性能を上げる方法と
してはスケールアウトが求められている。
本研究で扱うスケーラビリティとはスケールアウトのことをさす。

データを分散させて扱う分散データシステムにおいて、データの整合性(一貫性)、常にアクセスが可能であること(可用性)、データを分散させやすいかどうか(分割耐性)、この3つを同時に保証することは出来ない。
この定義をCAP定理と言う。

今、最も使われているデータベースであるRDBは、一貫性と可用性を重視している。
そのため、データを分割し、複数のノードにデータを分散させると、整合性のチェックやデータの統合処理性能が低下する等の問題があり、データを分割し、マシンを追加して負荷を分散することが困難である。

当研究室では、これらの問題を解決した、煩雑なデータ設計が必要ないスケーラビリティのあるデータベースを目指して、非破壊的木構造データベースJungleを開発している。
Jungleは、全体の整合性ではなく、木に閉じた局所的な整合性を保証している。
また、整合性のある木同士をマージすることで新しい整合性のある木をす繰り出すことも可能であるため、データの伝搬も容易である。
そのため、Jungleは可用性と分割耐性を重視しつつ、整合性も持つ。

%しかし、Jungleはまだ、データベースとして必要な検索等の機能が実装されておらず、実際に業務等で使用されるアプリケーションに組み込み、使用できる状態ではなかった。
Jungleは、これまでの開発によって木構造を格納する機能をもっている。
そこで、当研究では、共同研究を行っているSymphonies社が開発している組織の中の許認可を管理するアプリケーションmaTrixにJungleを組み込み、実装すべきAPIの洗い出しを行い、その後実用DBとしての性能があるか実証実験を行う。