首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡桑德拉:如何减少桌子上墓碑的数量?(tombstone_compaction_interval,gc_grace_seconds和LevelledCompactionStrategy)

卡桑德拉:如何减少桌子上墓碑的数量?(tombstone_compaction_interval,gc_grace_seconds和LevelledCompactionStrategy)
EN

Stack Overflow用户
提问于 2017-07-20 16:30:29
回答 1查看 1.6K关注 0票数 0

我有一张表格,其中我插入了TTL值为1分钟的数据,并在DSE OpsCenter中对该表中的大量墓碑发出了警告。这确实是有意义的,因为平均每分钟80条记录被插入到这个表格中。例如,整整一天,80 * 60 * 24 = 115200条记录插入,TTL‘在一天内完成。

我的问题是,我应该怎么做才能减少这张桌子上墓碑的数量?

我一直在研究tombstone_compaction_interval和gc_grace_seconds,这让我有点困惑,因为我很难理解这些属性对墓碑的确切影响(甚至在阅读了DataStax - reference/compactSubprop.htmlreference/tabProp.html提供的文档之后)。

我也一直在研究LevelledCompactionStrategy (https://www.datastax.com/dev/blog/leveled-compaction-in-apache-cassandra),因为它似乎也会影响墓碑的压实,尽管我不完全理解原因。

因此,我希望有人能帮助我更好地理解这一切是如何工作的,甚至告诉我,如果我的方向是正确的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-20 20:51:17

请阅读这个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)的一部分,引入了这个属性。当压实比足够高,足以触发单一的可持续压实,但这些墓碑没有被驱逐,因为重叠的SSTables。

我不确定你目前的数据模型,但以下是我的建议。

  1. 也许你必须改变你的糖尿病。请阅读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 (有点激进)。

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

https://stackoverflow.com/questions/45220418

复制
相关文章

相似问题

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