我有3个节点cassandra设置,似乎有些节点有时间同步问题,即有些节点比其他节点提前10分钟。
CT-Cass2:/root>nodetool status
Datacenter: DC1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 172.94.1.22 14.15 GB 256 ? db37ca57-c7c9-4c36-bac3-f0cbd8516143 RAC1
UN 172.94.1.23 14.64 GB 256 ? b6927b2b-37b2-4a7d-af44-21c9f548c533 RAC1
UN 172.94.1.21 14.42 GB 256 ? e482b781-7e9f-43e2-82f8-92901be48eed RAC1
我已经在下表中创建了。
CREATE TABLE test_users (
userid text PRIMARY KEY,
omavvmon int,
vvmon int
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.TimeWindowCompactionStrategy', 'compaction_window_size': '1', 'compaction_window_unit': 'DAYS', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 48000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
我可以看到在customer设置中,一些删除的记录返回并显示writetime(omavvmon)显示writetime比行删除时间晚10分钟。我几乎可以肯定的是,由于时间同步问题,记录正在返回(因为在更正时间之后,它不会发生)。但当我试图在本地重现这个问题时,却从未发生过。
我把Cassandra系统的时间提前了10分钟,创造了一排。writetime显示提前10分钟
更新test_users set omavvmon=1,其中userid='4444';
我将系统时间设置为正常,即慢10分钟。然后执行用户id 4444的删除。
据我所知,与第一次创建相比,这次删除的writetime少了10分钟,我应该会看到记录再次返回。但它没有发生。有什么能帮我解释一下为什么删除的记录会在生产设置中返回,而不是在本地设置中?还有为什么cassandra没有在本地显示记录,即使delete的时间戳比insert小?是不是类似于先删除后插入?
在生产中,我检查几个小时后,但本地设置,我检查后立即删除。
暂无答案!
目前还没有任何答案,快来回答吧!