スティルハウスの書庫の書庫

はてなダイアリーで書いてた「スティルハウスの書庫」を移転してきました。

分散KVS記事へのコメントへのコメント

ずいぶん前の話ですが、@ITの記事「もう1つの、DBのかたち、分散Key-Valueストアとは」のはてなブックマークに以下のようなコメントをいただいていました:

kuenishiさん:

"マジレスするとCouchDBもTTもKVSかもだけど分散ではない。レプリケーションするのを分散だというならOracleだってMySQLだって分散DBかと。BigTableはKVSじゃないでしょ。memcachedとOracleRACを比べてるのも変だし。"

これについてコメントさせていただきます。まず、

CouchDBもTTもKVSかもだけど分散ではない。

ですが、これはおっしゃるとおりで、「分散」KVSというくくりでCouchDBとTTを紹介したのは記事として適切ではありませんでした。TTはむしろ集約指向って感じですし。

レプリケーションするのを分散だというならOracleだってMySQLだって分散DBかと。

本記事では別にそれらのDBが分散DBではないとは言ってません。問題は、OracleMySQLレプリケーション(とりわけマルチマスター)のスケーラビリティはいずれ(数10ノード程度で)頭打ちになるという点で、その理由は「リレーショナルモデルそのものが分散アプリの構築を阻んでいる」という趣旨です。

BigTableはKVSじゃないでしょ。

Bigtableは「行キー+列キー+タイムスタンプ」からなるキーと値のペア保持するデータストアです。分散KVSに関してよく紹介されるこのページでもBigtableそのものやBigtableのデータモデルに基づく分散KVS実装がいくつかリストアップされています。

memcachedとOracleRACを比べてるのも変だし。

OracleRACのスケーラビリティのキモは、Global Cache Service/Cache Fusionによる分散キャッシュです。memcachedも、おもな使われ方としては「複数のサーバー上でmemcachedのキャッシュを分散配置してDB内容をキャッシュする分散キャッシュを構成する」ために用いられています。つまりRACmemcachedも、「スケールしないRDBをスケールさせるための分散キャッシュ」という側面でこの記事では同列に扱っています(もちろんRACは分散キャッシュ以外にもフェイルオーバー等のたくさんの機能があって、分散キャッシュだけがRACの価値ではありませんが、商用RDBの代表的な分散キャッシュ実装であることは間違いありません)。

11/17追記

kuenishiさんからいただいたコメントに基づいて、@IT記事の記述(CouchDBとTTについて)を修正しました。ご指摘ありがとうございました。