2015-04-03 16 views
0

如何确保一个用户插入不受其他用户的影响?在cassandra中的交易和我正在使用gocql

像交易...

你结合使用批处理作业用IF NOT EXISTS?

BEGIN UNLOGGED BATCH 
INSERT INTO atable ("user1") value (10) 
INSERT INTO atable ("user2") value (-10) 
APPLY BATCH 

回答

0

卡桑德拉在2.0中引入'light weight' transaction,但它不完全尊重ACID属性。

它使用Paxos来保证这种“轻量级”事务的原子性,但它缺少处理并发事务的隔离解决方案。

一个解决方案可以在Cassandra上自己实现两个阶段锁定或某种乐观并发控制。