Cassandra中的Counter Vs Int列?

Counter Vs Int column in Cassandra?

我是Cassandra的新朋友。我无法理解在表中使用计数器的优势(如果非计数器列不是复合PRIMARY KEY的一部分,甚至在其他表中使用计数器)也有什么好处?为什么当我将要使用x = x之类的语句时,为什么不使用Int类型的列?使用int或counter有什么区别?
是否可以在Cassandra中对Int Type使用增量或减量?


Why we don't use a column with Int type, when I will have some statements like x=x++; what is the different between using int or counter?

因为使用普通的Int列将需要先写后读和锁定,以进行x=x++

之类的操作

实际上,对于分布式数据库,当您可以对同一值进行并发更新时,保证x=x++行为一致的唯一方法是:

  • 锁定当前记录
  • 读取x的当前值,将其递增1
  • 写回x的新值
  • 释放锁
  • 计数器类型允许同时递增/递减值,而无需先写后读或锁定