NoSQL製品調査
NoSQLとして以下の製品を調べてみました。
・Cassandra
・Oracle NoSQL Database
違い
違いとしては以下が大きいのではないかと思います。
・ACIDを保証しているかいなか
雑感
基本的には2つともKey-Value形式で高速書き込みと読み込みを実現していますが、アクセス方法としてはCQL3でSQLライクにアクセスできたりできなかったりとなっています。
Cassandraとしては、CQL3で軽量トランザクションをサポートしていますが、私として望んでいるAtomic性を担保していないことがわかりました。
軽量トランザクションとはIF文のようなものをつけて辻褄があわない場合にエラーを発生させず処理を継続できる仕組みと理解していますが、ロールバックであったりコミットであったりといった一位性を担保するものではないということがわかり残念です。
Oracle NoSQLの場合はACIDを担保してくれているようですが、同一シャードかつ取得処理が対象外となっており、実際に試してみないとわからないことではありますが、RDBのような強力なトランザクション機能とまではいかないような気配がします。
Oracle NoSQLの操作はSQLライクではなく、ドライバから提供されるクラスで取得、登録、変更、削除が表現されており、それらを利用する形態となっているようです。
あと、Oracle NoSQLサーバを立てようとしたところ、jarファイル形式のものを実行することで起動できるようですが、そのあたりが若干ひかかってしまいました。