首页 > 解决方案 > 在某些情况下,cassandra 中的增量整数是否可能?

问题描述

假设我有下表:

id text PRIMARY_KEY,
question_asked (int?),
question_answered (int?)

此表将由同一用户每次更新。他不能同时更新这个表。

我想使用以下查询:

UPDATE %s.%s SET question_asked = question_asked + 1 WHERE %s = :execution_id;

如果我在针对这种特定情况进行更新时使用 LOCAL_QUORUM。我可以对一致性有任何问题吗?如果是这样,我会很高兴理解为什么

我对计数器很熟悉,这就是我到目前为止使用它的方式。使用计数器的问题是我无法定义 TTL。

标签: cassandracounterconsistency

解决方案


不,这在 Cassandra 中是不可能的,除非您使用称为counter. 但是它有它自己的问题——因为它不是幂等的,所以在服务器端出错的情况下它不会重试,这可能会导致不正确的结果。

作为解决方法,您可以尝试使用轻量级事务,但它们非常重量级,因此在使用它们时不要期望高吞吐量。


推荐阅读