changeset 68:01fadc801c18

fixed
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Sat, 01 Feb 2014 21:06:49 +0900
parents 2fa14ca42ca6
children 4f31182c8244
files paper/chapter1.tex paper/introduciton.tex paper/master_paper.pdf
diffstat 3 files changed, 28 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/paper/chapter1.tex	Sat Feb 01 20:34:46 2014 +0900
+++ b/paper/chapter1.tex	Sat Feb 01 21:06:49 2014 +0900
@@ -7,7 +7,7 @@
 最後に既存の NoSQL データベースとしてmemcached, MongoDB, Neo4j, Cassandraの特徴について述べる.
 
 \section{Relational Database}
-RDBは列と行からなる2次元のテーブルにより実装されるデータベースである.
+Relational Database(RDB)は列と行からなる2次元のテーブルにより実装されるデータベースである.
 データ型として文字列, 数値, 日付, BOOL型がありシステムによりデータに型が強制される.
 RDBはスキーマの決まったデータを扱うことに長けている.
 構造化言語問い合わせ言語としてSQLがある.
@@ -16,17 +16,26 @@
 ことがある.
 それは, スキーマレスなデータの扱いやマシンの台数を増やして処理速度
 をあげることである.
-それらRDBが苦手としていることを得意とするNoSQLと呼ばれるデータベースがある.
+垂直分割や水平分割といった方法によりデータを分けることはできるが, 分割を行うほど
+データの扱いは複雑になっていく.
+
+それらRDBが苦手としていることを得意とするデータベースとしてNoSQLがある.
 
 \section{NoSQLデータベース}
 NoSQLはNot Only SQLの略で, SQLを使わないデータベースのことを指す.
 NoSQLデータベースはRDBとは違いスキーマがない.
 そのため, 扱おうとしているデータの形が決まっていなくても気軽に使うことができる.
-また, スケーラビリティも持ちあわせており, 汎用的なマシンを集めることで性能をあげる
-ことができるといった特徴を持つ.
+
+%また, スケーラビリティも持ちあわせており, 汎用的なマシンを集めることで性能をあげる
+%ことができるといった特徴を持つ.
 
-NoSQLは, RDBには向いていない処理を行うことを目的にしている.
+後述するConsistency HashingやShardingといった方法で複数ノードでデータの分散を行うことで
+スケーラビリティの確保を行う.
+単純なノードの追加により負荷分散を行うことができる.
 
+
+
+\newpage
 \section{CAP 定理}
 分散データシステムにおいて次の3つを同時に保証することはできない
 \begin{itemize}
@@ -41,12 +50,18 @@
 利用するデータベース選ぶ場合, このCAP定理を意識しなければならない.
 一貫性と可用性を重視したデータベースが, RDBである.
 分断耐性を必要とする場合は NoSQL データベースとなる.
-そしてNoSQLの場合, 分断耐性と後もう一つ, 一貫性か可用性のどちらを保証しているかで用途が変わってくる.
+そしてNoSQLの場合, 分断耐性と後もう一つ, 一貫性か可用性のどちらを重視しているかで用途が変わってくる.
 
 分散データシステムを考える場合は, この CAP 定理を意識していなければならない.
 
 
-\section{memcached}
+\newpage
+
+\section{既存のNoSQLデータベース}
+ここでは既存のNoSQLデータベースに説明する.
+それぞれの特徴を述べながら, どのような方法でスケーラビリティを確保しているのかについて述べる.
+
+\subsection{memcached}
 memcachedは揮発性の分散型キャッシュである.
 Key-Valueストアとなっている.
 RDBとも連携して使うことができ, その場合メモリの中にデータを保持させることでディスクへのアクセスを減らし
@@ -69,8 +84,8 @@
 
 
 
-
-\section{MongoDB}
+\newpage
+\subsection{MongoDB}
 MongoDB は2009年に公開された NoSQL のデータベースである.
 JSON フォーマットのドキュメントデータベースであり, これはスキーマが無い
 リレーショナルテーブルに例えられる.
@@ -99,7 +114,7 @@
 
 \newpage
 
-\section{Neo4j}
+\subsection{Neo4j}
 Neo4j は, グラフデータベースと呼ばれる NoSQL のデータベースである.
 データをグラフとして保存する.
 グラフはノードとリレーションシップにより表され, それぞれがプロパティを持つことができる.
@@ -126,7 +141,7 @@
 \newpage
 
 
-\section{Cassandra}
+\subsection{Cassandra}
 Cassandra\cite{cassandra} は2008年7月にFacebookによってオープンソースとして公開された Key-Value なデータベースである.
 AmazonのDynamo\cite{dynamo} という分散Key-Valueデータベースの影響を受けて作られている.
 スキーマレスな NoSQL データベースになる.
--- a/paper/introduciton.tex	Sat Feb 01 20:34:46 2014 +0900
+++ b/paper/introduciton.tex	Sat Feb 01 21:06:49 2014 +0900
@@ -3,7 +3,7 @@
 
 巨大なウェブサービス程データベースは必須であり, ウェブサービスの規模
 に比例してデータベースへの負荷も大きなものとなっている. 
-そのため, データベースの処理能力の高さはそのままウェブサービスの質にも繋がってくるため重要な
+そのため, データベースの処理能力の高さはそのままウェブサービスの質にも繋がってくる重要な
 項目となっている.
 データベースの処理能力をスケールさせる方法としてスケールアップ(垂直スケール)と
 スケールアウト(水平スケール)の考えがある.
@@ -45,4 +45,4 @@
 この掲示板プログラムはJungleとCassanraそれぞれのデータベースを使うものを用意した.
 学科の並列環境上で開発した掲示板プログラムを複数のノードで実行させ, 負荷をかけることで Jungle と Cassandra の
 性能比較を行う.
-第6章は, 本研究におけるまとめと今後の課題について述べる.
+第6章では, 本研究におけるまとめと今後の課題について述べる.
Binary file paper/master_paper.pdf has changed