2016-12-27 53 views
0

有没有任何方法可以自动增加双数据类型而无需在主键上实现分布式锁定? 可能以类似的方式计数器的工作原理:cassandra中双数据类型的原子增量

UPDATE user SET usage = usage + 3.45 WHERE user_id = 3400435592 

回答

2

有在卡桑德拉没有这样的事情,但如果你有固定的精度,那么你可以通过适当的缩放你的数据,如使用普通柜台:

UPDATE user SET usage = usage + 345 WHERE user_id = 3400435592 

,你含蓄地用“仙”为你的基地,或

UPDATE user SET usage = usage + 3450 WHERE user_id = 3400435592 

在您使用“米利斯”作为你的基地。

但是,请记住,您的增量问题比“双倍”增量更普遍。如果你可以容忍低于/高于增量,那么继续使用Cassandra计数器。如果你正在为金钱交易建模,那么我能想到的唯一可靠的增量是一个队列消息处理的事情,在应用程序级完成,并且不使用双打!