Cassandra 中的 Counter Vs Int 列?

Counter Vs Int column in Cassandra?

我是 Cassandra 的新手。我不明白 在 table 中使用计数器有什么好处(如果非计数器列不是复合主键)?为什么我们不使用 Int 类型的列,当我会有一些像 x=x++; 的语句时使用 int 或 counter 有什么不同?
是否可以在 Cassandra 中对 Int 类型使用递增或递减?

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 列需要 read-before-writelock 来进行 x=x++

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

  1. 锁定当前记录
  2. 读取x的当前值,加1
  3. 写回 x 的新值
  4. 解除锁定

Counter 类型允许在值上并发 increment/decrement 而无需 read-before-write锁定