【发布时间】:2020-07-08 18:23:43
【问题描述】:
所以我在 Cassandra V3 中删除了一个表,然后重新创建了同一个表,这样我就可以删除一些不必要的列(我知道我应该使用 alter 命令,我猜当时不太聪明) .
谁啊,我在一个多星期前执行了这个操作,所有这些记录的 TTL 都是 8 天,
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 = 691200
AND gc_grace_seconds = 86400
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
因此,从本质上讲,旧表的数据目录中的所有数据现在都应该过期了。但我看到目录不是空的,并且仍然占用空间(~900MB)。但是当我检查日期时,这些目录的最后一次更新是 1 周前。所以从技术上讲,它们可以安全地被删除。但是有没有更好、更安全的方法来删除或清除这些目录,而不会弄乱生产数据?
【问题讨论】: