Hector,以在执行incrementCounter之后获得结果计数器值



我们正在执行以下操作来更新计数器的值,现在我们想知道是否有一种直接的方法可以立即返回更新后的计数器值。

mutator.incrementCounter(rowid1,"cf1","counter1",值);

Cassandra rift API中没有单独的"incrementAndGet"操作。

Cassandra中的计数器最终是一致的和非原子的。Fragile ConsistencyLevel.ALL操作需要获取"保证更新"计数器值,即执行一致读取。ConsistencyLevel.QUORUM不足(如计数器设计文件中所规定:https://issues.apache.org/jira/secure/attachment/12459754/Partitionedcountersdesigndoc.pdf)。

要实现看起来一致的incrementAndGet方法,您可能需要首先读取计数器值,然后发出增量突变,然后返回(读取值+inc)。

例如,如果以前的计数器值是10到20(在不同的副本上),并且加50,则递增前读取将返回60或70。增量后的读取可能仍然返回10或20。

唯一的方法是查询它。Cassandra中没有增量然后读取功能。

最新更新