我们有一个Cassandra表,用于在目录中存储商品的销售数量。我们为此使用计数器数据类型。 我们仍然不确定计数器是否可以处理比赛条件。多个服务器试图增加同一项目的计数。
计数器是否处理竞争条件,还是需要为更新执行自己的锁定系统?如果不这样做,那么使用计数器而不是整数有什么好处?
答案 0 :(得分:2)
您可以使用SERIAL查询,该查询可以使查询线性化,但会降低性能,即使您最关心的是一致性和数据争用安全性,也要牢记这一点。您可以在以下链接中了解有关所述查询类型的更多信息:
答案 1 :(得分:1)
计数器的定义并不精确,因此您不应将其用于库存和类似物品。
它们不是必需的,因此不会在失败的情况下重试,因此,如果使用默认重试策略,则可能会导致计数不足;如果您实施自定义重试策略,则可能会计数过多...
使用计数器的优点是它们可以在精度不太重要的特定情况下工作。它们比LWT轻得多。