diff paper/chapter1.tex @ 25:67880a2ca650

Modfied chapter1.tex
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Sat, 25 Jan 2014 22:24:03 +0900
parents 5316b4791570
children 388cd4555b3d
line wrap: on
line diff
--- a/paper/chapter1.tex	Fri Jan 24 11:14:24 2014 +0900
+++ b/paper/chapter1.tex	Sat Jan 25 22:24:03 2014 +0900
@@ -1,6 +1,23 @@
 \chapter{既存の分散データベース}
 
-% NoSQL の説明はどこかで必要。
+% 分散データベースとはなんなのか。
+% データベースはなんなのかをいれないと。
+% NoSQL の説明も必要。
+
+この章ではまずデータベースの種類である RDB と NoSQL について述べる.
+その次に, 既存の NoSQL データベースとして Cassandra, MongoDB, Neo4j について述べる.
+
+\section{RDB と NoSQL}
+データベースは大別すると RDB と NoSQL に分けられる.
+RDB とは関係と関係の属性により表されるスキーマをデータ構造に持つデータベースである.
+データベースアクセス言語として SQL 言語を持つ RDB は一台の PC でデータを扱う分には最適である.
+しかし, RDB はマシン単体以上の処理性能をだすことができない.
+そこで, 汎用的な PC をいくつも用意しデータや処理を分散して管理できるデータベースが求められた.
+それらのデータベースは NoSQL(Not Only SQL) と呼ばれる.
+NoSQL は, SQL を使用するデータベースには向いていない処理を行うことを目的にしている.
+
+分散データベースは, NoSQL に分けられる.
+
 
 \section{Cassandra}
 Cassandra は2008年7月に Facebook によってオープンソースとして公開された Key-Value なデータベースである.
@@ -15,14 +32,17 @@
 データの偏りにより少数のサーバへの負荷が大きい場合に, 負荷が高いハッシュ値が指すリング上に
 新たなノードを追加することで負荷を下げるといった手段もとれる.
 
-1つのデータを最大どれだけ複製にとるかという
-またデータの読み込み, 書き込みの際に Consistency Level を指定することができるのも Cassandra の特徴である.
-データ取得の際に, いくつのノードに問い合わせを行うのか設定するのが Consistentcy Level である.
-Consistency Level には ONE, QUORAM, ALL があり, それぞれ1つのノード, 全体のノードの過半数+1, 全体のノード
-への処理を設定することができる.
-Cassandra は高い可用性と分断耐性をもつ.
+データを最大どれだけ配置するかを示すレプリケーションファクタと, データの読み書きをいくつのノードから
+行うのかを決めるコンシステンシーレベルを設定できる.
+コンシステンシーレベルには主に ONE, QUORAM, ALL がある.
+レプリケーションファクタの数値を N とした場合, ONE は1つのノード, QUORUM は N/2 + 1 のノード, ALL は N のノード
+へと読み書きを行う.
+コンシステンシーハッシング, レプリケーションファクタとコンシステンシーレベルの設定により Cassandra は
+高い可用性と分断耐性を持つ.
 
-% Consistency Level を変更できるところ
+% keyspace, super column といったデータの表現についても述べるべきか?
+% レプリケーションファクタはkeyspace毎に設定できる
+
 \section{MongoDB}
 MongoDB は2009年に公開された NoSQL のデータベースである.
 JSON フォーマットのドキュメントデータベースであり, これはスキーマが無い