【问题标题】:How do I change default compaction strategy in cassandra/scylla?如何更改 cassandra/scylla 中的默认压缩策略?
【发布时间】:2021-10-19 04:08:37
【问题描述】:

我了解到您可以在 Cassandra/Scylla 中为每个表设置压缩策略,如此处所述https://docs.scylladb.com/operating-scylla/procedures/config-change/change_compaction/

默认的压缩策略是 Size-tiered compaction strategy (STCS)。

但是有没有办法在设置中以某种方式更改它,以便创建的每个表默认使用另一种压缩策略?

谢谢。

【问题讨论】:

    标签: cassandra scylla


    【解决方案1】:

    压缩策略是每个表的压缩配置的子属性,因此您需要使用 CQL ALTER TABLE 命令选择默认以外的不同压缩策略。

    在几乎所有情况下,SizeTieredCompationStrategy (STCS) 都是正确的选择,因此它是默认值。在非常有限的情况下,您会选择不同的压缩策略。

    如果您有一个推荐使用TimeWindowCompactionStrategy (TWCS) 的时间序列用例,则最常见的情况是您需要更改它。 LeveledCompactionStrategy (LCS) 仅适用于写入很少且您的应用几乎只进行读取的工作负载。

    因此,除非您适合这些狭窄的用例,否则 STCS 应该是您的压缩策略选择。干杯!

    【讨论】:

    • 是的,我需要 TimeWindowCompactionStrategy。我发现很奇怪,Cassandra 不包括一个全局机制来改变它,并且需要你为每个表设置它。我所有的表都需要 TimeWindowCompactionStrategy 并且为每个表设置所有这些很烦人。谢谢你的回答。
    • 您对如何实现自动化有任何想法吗?也许有一种方法可以在 cassandra 中配置某种事件,以便在创建表时自动触发“ALTER TABLE”语句并设置正确的策略?
    • 您实际上可以在创建表时指定压缩属性。例如:CREATE TABLE table_name ( ... ) AND compaction = {'class': 'TimeWindowCompactionStrategy'}。干杯!
    • 如果您已经知道需要TWCS,则不需要ALTER TABLE -- 只需在创建表时指定TWCS即可。干杯!
    • 我了解,但由于各种原因,在过去(CASSANDRA-12209、CASSANDRA-13552)中,使集群范围的设置可配置并没有引起人们的注意,但请随时将您的声音添加到第二张工单中。话虽如此,我更担心“很多开发人员”会进行架构更改,这是自找麻烦。 ?
    猜你喜欢
    • 2014-12-25
    • 2023-03-31
    • 2019-04-24
    • 2016-05-06
    • 2019-11-25
    • 2019-12-15
    • 1970-01-01
    • 2016-10-15
    • 2023-04-06
    相关资源
    最近更新 更多