首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TWCS未根据window_size和window_unit生成SStables

TWCS未根据window_size和window_unit生成SStables
EN

Stack Overflow用户
提问于 2019-10-03 13:21:11
回答 2查看 163关注 0票数 0

我需要在特定的时间后生成SSTables,比如10分钟,但是使用TWCS并设置"compaction_window_size“和"compaction_window_unit",我不能理解何时生成SSTables。

我尝试了所有的组合,但我不能确定何时创建SSTables

代码语言:javascript
复制
CREATE TABLE twcs.twcs2 (
    id int PRIMARY KEY,
    age int,
    name text
) 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': 'MINUTES', '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 = 3600
    AND gc_grace_seconds = 60
    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';

这里我设置了'compaction_window_unit'='MINUTES‘和'compaction_window_size':'1’,因此如果在表上执行了某些操作(数据的插入/删除/更新),则每隔1分钟就会生成一次SSTables,但这并没有发生。

EN

回答 2

Stack Overflow用户

发布于 2019-10-03 20:30:11

TWCS是一种压缩策略。压缩策略与生成的sstables无关。一旦它们被创建,它就是一个协调和清理的“算法”。TWCS的工作方式是将sstables合并到windows中。这里的关键词是“合并”。不能保证在该时间范围内将“生成”sstables,但在窗口到期后生成的任何内容都将合并在一起。因此,如果你有每小时一次的窗口/存储桶,那么在这段时间内可能会生成,也可能不会生成。如果在窗口期间创建了多个稳定表,则使用STCS对它们进行压缩/合并/协调(将大小相似的稳定表合并在一起)。一小时后,为该窗口保留的所有sstable都将被压缩到一个sstable中。随着时间的推移,您将在每个窗口中看到一个sstable (如果在该窗口期间没有生成任何内容,则不会显示)。在TTL和gc_grace通过后,整个窗口就会被删除(而不是与其他窗口合并,然后删除过期记录的大量工作)。

如果窗口内的行没有重叠,TWCS工作得很好。如果存在重叠,则在具有重叠记录的最新sstable过期之前,将无法删除最旧的窗口sstable。换句话说,TWCS对于不跨窗口的插入工作得很好(记住,更新和删除也被认为是插入)。您需要确保使用TTL进行清理(即,不要运行delete语句,因为这将导致重叠)。此外,根据我在使用此工具时发现的情况,请确保关闭对具有TWCS的表的修复,因为这可能会导致大问题(看不见的重叠)。

因此,简而言之,TWCS不会导致生成sstables (创建sstables时有一些与压缩策略无关的规则),它只是保持事物“干净”的另一种方法。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58212745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档