我想使用Cassandra生成较小的(整数)数字。
使用量可能会产生少于1000 Ids /天,但肯定需要是非冲突的,并且更愿意浪费(未使用的数字块)。
我考虑了以下选项
read+update
,直到我得到一个成功的结果。我还使用UUID创建记录,我只想将序号用于公开发布的记录,并且将成为URL的一部分。
答案 0 :(得分:6)
更新操作是原子操作,但是您不会将更新后的值作为操作的输出返回。 Update
/ Select
组合绝对不是原子的。任何其他进程都可以在update
和select
调用之间递增/递减计数器值,从而使您的结果无法预测。以下是计数器如何工作的良好描述:http://www.datastax.com/dev/blog/whats-new-in-cassandra-2-1-a-better-implementation-of-counters。尝试在Cassandra前面使用一些同步层来实现此操作的原子性。 Astyanax就是其中一个例子。