分散KVSの使い方


key-value storagekey-valueKVS
WebKVS
m(_ _)m

2009-11-17 KVS使KVSDynamo  kumofs  ROMA  


分散KVSの利点

  • スケールアウトできる
  • 簡単にサーバーを追加して性能を上げられる
  • 単体の性能が高い
  • スキーマレス


KVS  



RDBJOIN使sharding使*1
KVS1RDB1QPSKVS10QPSkeyvalueKVS*2


RDBKVSOracle RAC
KVSWeb


分散KVSの欠点


KVS
使KVS使RDB使


RDBKVSRDBfriendfeedKVS*3


RDB100100KVS100
KVS使
1RDB1001HDD
KVSRDB1


KVS100key使key使


KVS1001,000

KVS1020


KVSBigTableCassandraMulti dimensional sorted store
key-valueKVS

*1:JOINや分散トランザクションはスケールしないとしても、使いたければ使えるのはRDBの優れた特徴だと思う。新参者には実装するだけで大変大変。

*2:JavaとかErlangとかRubyで実装されたKVSだと、単体性能が高いメリットは無いかもしれない…などと

*3:シリアライズ形式にはJSONよりもMessagePackがオススメ^^; YAPC::Asia 2009 Key Value Store with O/R Mapper