2010年1月18日月曜日

キーバリュー型データストア

Webアプリは3階層モデルと言われるが、最後尾にはデータストア層がある。
データを保存するにはRDBMSを使うのが常識であった。実際、小規模なWikiなどを除くと例外なくRDBMSが使われている。しかし、RDBMSにはスケールの限界がある。
それを克服するため、近年キーバリュー型データストア(KVS)が注目されている。しかし、KVSへ移行するには、ある程度の開発ノウハウが必要だ。例えば、データモデリングが異なる。原則として主キーのみによる検索が主体となる。結合はプログラムで補う必要がある。直列化のオーバーヘッドもある。ただし、SQLでも直列化は必要なのでORMで隠蔽できるだろう。ORMでRDBMSとKVSを隠蔽するのは今後重要な方法論になるだろう。
移行をスムーズに行うには段階的に行うべきだ。つまり、本当に必要なところから進めるべきだ。
まず性能を向上するにはKVSベースのキャッシュを用いる。これによりRDBからKVSへの変換が促される。
次に永続的なKVSを保存する。しかし、一部に留める。トランザクションなどはRDBMSに任せる。それでも性能的に不十分であれば、いよいよすべてをKVSに移す。

0 件のコメント: