【问题标题】:Cassandra: how to reduce the number of tombstones in a table? (tombstone_compaction_interval, gc_grace_seconds and LevelledCompactionStrategy)Cassandra:如何减少表中的墓碑数量? (tombstone_compaction_interval、gc_grace_seconds 和 LevelledCompactionStrategy)
【发布时间】:2017-12-26 11:42:20
【问题描述】:

我有一个表,我在其中插入 TTL 为 1 分钟的数据,我在 DSE OpsCenter 中收到有关该表中大量墓碑的警告。这确实是有道理的,因为平均每分钟在此表中插入 80 条记录。 因此,例如一整天 80 * 60 * 24 = 115200 条记录在一天内插入和 TTL'ed。

我的问题是我应该怎么做才能减少此表中的墓碑数量?

我一直在研究 tombstone_compaction_intervalgc_grace_seconds,这有点令人困惑,因为我无法理解这些属性的确切影响在墓碑上(即使阅读了 DataStax 提供的文档 - http://docs.datastax.com/en/cql/3.1/cql/cql_reference/compactSubprop.htmlhttp://docs.datastax.com/en/cql/3.1/cql/cql_reference/tabProp.html)。

我也一直在研究 LevelledCompactionStrategy (https://www.datastax.com/dev/blog/leveled-compaction-in-apache-cassandra),因为它似乎也会影响 tombstones 压缩,尽管我不完全明白为什么。

所以我希望有人能够帮助我更好地了解这一切是如何运作的,或者甚至只是让我知道我是否朝着正确的方向前进。

【问题讨论】:

    标签: cassandra datastax-enterprise cassandra-2.1 opscenter


    【解决方案1】:

    请阅读此http://thelastpickle.com/blog/2016/07/27/about-deletes-and-tombstones.html。很好读。

    总体而言:gc_grace_seconds 参数是删除数据后逻辑删除在磁盘上保留的最短时间。我们需要确保所有副本都收到了删除并存储了所有墓碑,以避免出现僵尸数据问题。默认为 10 天。

    tombstone_compaction_interval:作为这个 JIRA (https://issues.apache.org/jira/browse/CASSANDRA-4781) 的一部分,引入了这个属性。 当压缩率高到足以触发单个 SSTable 压缩时,但由于 SSTable 重叠,墓碑没有被驱逐。

    我不确定您当前的数据模型,但这是我的建议。

    1. 可能您必须更改您的 DM。请阅读https://academy.datastax.com/resources/getting-started-time-series-data-modelingTime series modelling( with start & end date) in cassandra
    2. 更改写入模式。
    3. 更改读取模式。尝试只读取活动数据。 (根据您当前的 DM,当您阅读它时,它会通过墓碑单元以到达活动单元)
    4. 尝试使用 TimeWindowCompactionStrategy 并根据您的工作负载对其进行调整。 (http://thelastpickle.com/blog/2017/01/10/twcs-part2.html)
    5. 如果您在插入时使用 TTL(例如使用 INSERT 或 UPDATE stmnt),请查看是否可以将其更改为表级别。

    如果您使用 STCS 并且想要更改压缩子属性,您可能可以更改 unchecked_tombstone_compaction=true 和 min_threshold=3(有点激进)

    【讨论】:

    • 感谢您的快速回答,我会阅读您提供的所有链接,如果我有更多问题,我会再次在这里写信。如果没有,我会将其标记为已接受:)
    猜你喜欢
    • 2017-10-03
    • 2023-03-08
    • 2021-10-27
    • 2017-02-09
    • 2015-11-18
    • 2017-02-09
    • 1970-01-01
    • 2014-11-06
    • 2014-12-24
    相关资源
    最近更新 更多