Mercurial > hg > Papers > 2014 > nobuyasu-master
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 フォーマットのドキュメントデータベースであり, これはスキーマが無い