makotan _at_ gmail dot com

KVSとRDB

RDBとかSQL好きの発言って事を忘れずに。
これまでのRDBの扱い方として、主な用途で単なるキーと値のセットしか必要としなくてかつ、読み込みが多くてスケールさせたい時に無理してRDBを使ったりしてた部分にKVSを持ち込む、KVSを使う部分にはサーバとしてスケールしやすいクラウドを・・・って言う流れになりそうな気がするなぁ〜
と同時にKVSとRDBが共存したシステムって言うのが重要になりそう
そしたらKVSの特徴とRDBの特徴を一緒に使える


KVSとRDBを共存させる場合、transactionの考え方の違いが最大の問題になる
ここにキューを使えばKVSの更新系は

  • RDBを必要なら更新してKVSを更新する代わりにキューにつっこんでコミット
  • キューからデータを取ってきて(必要ならRDBから持ってきて)KVSの値を更新

キッチリしたtransactionが必要な部分ではRDBをそのままつかってそれ以外はキュー経由でKVSを使えば、RDBのスケールアウトに膨大なお金をかけずに済む


なんてことをAmazonを使いながら思ったんだけど、よく考えたらあんな規模のシステムっていっぱい業務システムに関わってきたけど未だに作ったこと無いなぁ〜
まぁ、KVSがあるからって全部をKVSで作る必要はないんじゃない?RDBもバランス良く使った方が良いと思うよ。肉も野菜も穀物もバランスが重要って事で。
なんてことをなんとなく考えてたのを思い出したので書いてみた