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-write 和 lock 来进行 x=x++
确实,对于分布式数据库,当您可以 并发 更新同一值时,保证 x=x++
一致行为的唯一方法是:
- 锁定当前记录
- 读取x的当前值,加1
- 写回 x 的新值
- 解除锁定
Counter 类型允许在值上并发 increment/decrement 而无需 read-before-write 或 锁定
我是 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-write 和 lock 来进行 x=x++
确实,对于分布式数据库,当您可以 并发 更新同一值时,保证 x=x++
一致行为的唯一方法是:
- 锁定当前记录
- 读取x的当前值,加1
- 写回 x 的新值
- 解除锁定
Counter 类型允许在值上并发 increment/decrement 而无需 read-before-write 或 锁定