infomation一覧へもどる
クラウド時代のデータベース
リッテル藤井です。
今日は、これまでのメルマガの話を踏まえ、
クラウド時代のデータベースはどのようになるかということを説明します。
結論から言うと、クラウド時代ではKVSとRDBの両方を
組み合わせて使うケースが多くなります。
よく言われていることとして、
「RDBにはスケーラビリティがないからクラウド時代のDBは分散KVSだ」
というものがあります。
しかしKVSには、リアルタイム処理やトランザクション処理には向かない、
という欠点があります。
その理由として、トランザクション処理に必要な"原子性"(Atomicity)
(CAPのConsistencyと同じもの)という特性がありますが、
KVSではこの原子性があまり保証されません。
たとえばBigtableであればデータ1行までとか、
Googleが提供しているDatastoreであっても、
Entity Group(ある量のデータまで)でしか原子性は保証されません。
また、KVSはその仕組み上、作成できるクエリに大きな制限があります。
たとえば、論理結合子orを使うことができませんし、
イコール以外の演算子を同時に2つ用いることができません。
さらに、KVSはリアルタイム処理に向かないという欠点もあります。
以上のように、分散KVSはスケーラビリティに優れているとはいえ、
多くの欠点を抱えているデータベースになります。
その点、RDBはスケーラビリティには劣るものの、
クエリにKVSのような制限がつきませんし、
リアルタイム処理に適していて、
ACID特性を備えるためにトランザクション処理に向きます。
パーフェクトな特性を持つデータストアは存在しないので、
要求に応じた適材適所で利用するのがベストです。
そして、RDB一辺倒の設計でも、KVS一辺倒の設計でも、
吸収しきれない要求も今後は増えてくるでしょう。
クラウド時代にRDBが消えてしまうというようなことはなく、
用途に応じてKVSとRDBの両方を組み合わせて使うことが必要である、
といえます。
ご意見・ご感想などぜひ送ってくださいね。
↓↓↓
mminfo@littel.co.jp
ページTOPへ
infomation一覧へもどる