我是Cassandra的新人。我无法理解在表中使用计数器的优点是什么(如果非计数器列不是复合PRIMARY KEY的一部分,甚至在不同的表中)?为什么我们不使用具有Int类型的列,当我将有一些语句,如x = x ++;使用int或counter之间有什么不同?
是否可以在Cassandra中使用Int Type的增量或减量?
答案 0 :(得分:11)
为什么我们不使用具有Int类型的列,当我将有一些语句,如x = x ++;使用int或counter之间有什么不同?
因为使用普通的Int列需要 read-before-write 和 lock 来执行getClass().getField(pair.getKey()).setBoolean(this, theEntry);
等操作
实际上,对于分布式数据库,当您可以对同一值进行并发更新时,保证x=x++
一致行为的唯一方法是:
计数器类型允许对值进行并发递增/递减,而不需要 read-before-write 或锁定