当节点出现NTP同步问题时,Cassandra删除的行会重新出现(重新出现)

时间:2018-11-18 18:13:11

标签: cassandra datastax

我有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';

我可以看到,在客户设置中,一些删除的记录又回来了,并显示writetime(omavvmon)显示的写入时间比行删除时间晚10分钟。我几乎可以肯定,由于时间同步问题,记录又回来了(因为更正了时间之后,它没有发生)。但是当我尝试在本地重现此问题时,它永远不会发生。

  1. 我将cassandra系统时间设置为提前10分钟并创建行。并且写入时间显示提前10分钟
  

更新test_users设置omavvmon = 1,其中userid ='4444';

  1. 我将系统时间恢复为正常,即慢了10分钟。然后我执行用户ID 4444的删除。

据我了解,与第一次创建相比,此删除的写入时间要短10分钟,而且我应该会看到记录再次返回。但是它没有发生。有什么可以帮助我解释为什么删除的记录返回生产设置而不是本地设置的原因吗?另外,即使与插入相比,删除的时间戳要短,为什么cassandra不会在本地显示记录?删除然后再插入是否类似于?

在生产中,我会在几个小时后检查,但在删除后会立即检查本地设置。

0 个答案:

没有答案