gpt4 book ai didi

java - Cassandra 中副本之间的计数器值不一致

转载 作者:行者123 更新时间:2023-12-01 05:41:44 24 4
gpt4 key购买 nike

我有一个 3 机 Cassandra 集群,使用机架不感知的放置策略,复制因子为 2。

列族定义如下:

create column family UserGeneralStats  with  comparator = UTF8Type  and default_validation_class = CounterColumnType;

不幸的是,经过几天的生产使用,我得到了一些不一致的计数器值:

查询副本 1:

[default@StatsKeyspace] list UserGeneralStats['5261666978': '5261666978'];  
Using default limit of 100
-------------------
RowKey: 5261666978
=> (counter=bandwidth, value=96545030198)
=> (counter=downloads, value=1013)
=> (counter=previews, value=10304)

查询副本 2:

[default@StatsKeyspace] list UserGeneralStats['5261666978': '5261666978'];
Using default limit of 100
-------------------
RowKey: 5261666978
=> (counter=bandwidth, value=9140386229)
=> (counter=downloads, value=339)
=> (counter=previews, value=1321)

由于标准读取修复机制似乎无法修复我试图强制执行的值使用nodetool修复进行反熵修复。它对计数器值没有任何影响。

数据检查显示计数器的较低值是正确的,因此我怀疑 Cassandra(或我用作 API 从 Java 调用 Cassandra 的 Hector)重试了一些增量。

有什么想法可以修复数据并可能防止这种情况再次发生吗?

最佳答案

如果 RR 和修复都无法修复它,则可能是一个错误。

请升级到 0.8.3(今天发布)并验证该版本是否仍然存在,然后您可以通过 https://issues.apache.org/jira/browse/CASSANDRA 提交票证.

关于java - Cassandra 中副本之间的计数器值不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6980438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com