メールアドレス(半角):

バックナンバーはこちら

Solution

製品紹介


清田陽司について


つづきはこちら infomation一覧へもどる

分散データベースを理解するための重要な定理

リッテル藤井です。

今日は分散DBを比較する際に重要な、CAP定理[Eric Brewer, 2000]
(http://citeseerx.ist.psu.edu/viewdoc/download
?doi=10.1.1.20.1495&rep=rep1&type=pdf) についてお話します。
CAP定理は分散DBに関するひとつのジレンマですが、
これがわかるとデータベースについて理解が深まります。

CAP定理の"CAP"とは、データベースの性能に関する三つの要素の頭文字です。
順に説明します。

CはConsistencyの略で、日本語で言うと一貫性です。
誰から見ても同じデータが見えることを意味します。
分散システムではデータを多重化しているため、
そのデータの更新作業をきちんと行えないと、
古いデータと新しいデータがちぐはぐになってしまいます。
そのためConsistencyが劣ることになります。

ちなみに、トランザクション処理を行うにあたって
不可欠な機能とされるものにACIDがありますが、
CAPのCとACIDのCはどちらもConsistencyの略語なのに、
意味は別物になります。

ACIDの詳しい説明に関しては別の機会にしますが、
ACIDにおけるCとはデータの整合性です。

たとえば送金処理をする際、金額が正の整数をとらなければなりません。
マイナス1万円の送金とかルート7円の送金とかはありえません。
ACIDのCはこのようなデータの整合性を表します。
なので、とても紛らわしいのですが、
どのユーザも同じデータを常に参照できるという意味の、
CAP定理のCとは全く意味が違います。

次にCAP定理のAについて説明します。
AはAvailabilityの略で、日本語で言うと可用性
です。
可用性とは、どのような状態であってもデータの参照が可能であることを意味します。
たとえば、平均して1日に1時間利用不可能な時間があるデータベースよりは、
1日に1秒しか利用不可能な時間がないデータベースのほうが、
可用性は高いことになります。

PはPartition Toleranceの略で、分断耐性です。
データが複数のサーバに分散されており、
少数のサーバに障害が発生し、データが破損した場合でも、
別のサーバのレプリケーションにより、データが参照可能であることを意味します。

そして、CAP定理とは、
分散DBがこの3つのうち2つまでしか満たせない、という定理です。
したがって、分散DBを選択する際には、CAPのうちどの二つに特化しているのか、
に注意する必要があります。

次回はCAP定理の具体例についてお話します。

ご意見・ご感想などぜひ送ってくださいね。
↓↓↓
mminfo@littel.co.jp

ページTOPへ

つづきはこちら infomation一覧へもどる