なんと、HBaseではトランザクションを使える!
contrib(寄贈されたソース)だから、多少設定(準備)は要るけど。
排他の仕方がRDBのロック方式(悲観的並行性制御と呼ぶらしい)ではなくOCC(楽観的並行性制御)というものだそうなので、そこのコーディング方法はちょっと違うみたい。
しかし、なんだ、これでデータ一貫性に関してはHBaseでは悩むことは無さそうだなー。
(実際の信頼性や性能面がどうなのかは分からんけど)
Windowsで動かしているとDB自体はCassandraの方が軽そう(起動は遥かに速いしCygwinも要らない)ので、開発・製造で使うならCassandraの方がいいかなーと思い始めてたんだけど。
つまり、単体試験用に各開発者のPC(Windows)でDBを動かすことを考えるなら、Cassandraの方が軽くていい。
あるいはDBサーバーを立てて皆で共有する場合、Cassandraならキースペースをユーザー毎に分けてカラムファミリーは同一にしておけば、お互いに影響することなくデータを更新できる。(設定ファイルでキースペース名を指定するような事は、RDBでデータソースを切り替えるようなものだから、特に違和感は無い)
でもCassandraではまだHadoopも使えないしデータの整合性の取り方も(不勉強なので)まだ分からないし、まさに一長一短状態だなー(苦笑)
そもそもHBaseのcheckAndPut()に当たるものも無いのでは、整合性なんか取れっこないような気がするのだが…?