gpt4 book ai didi

Cassandra 控制 SSTable 大小

转载 作者:行者123 更新时间:2023-12-03 17:06:50 31 4
gpt4 key购买 nike

有没有办法控制 SSTable 的最大大小,例如 100 MB,这样当 CF 的数据实际超过 100MB 时,Cassandra 会创建下一个 SSTable?

最佳答案

不幸的是,答案并不是那么简单,你的 SSTable 的大小会受到你的压缩策略的影响,并且没有直接的方法来控制你的最大 sstable 大小。

SSTables 最初是在 memtables 作为 SSTables 刷新到磁盘时创建的。这些表的大小最初取决于您的内存表设置和堆的大小( memtable_total_space_in_mb 是一个很大的影响因素)。通常,这些 SSTable 非常小。 SSTables 作为一个名为 compaction 的过程的一部分合并在一起。

如果您使用大小分层压缩策略,您就有机会拥有非常大的 SSTable。当至少有 min_threshold(默认为 4)个相同大小的 sstables 时,STCS 将通过将它们组合成一个文件、过期数据和合并键来将 SSTables 合并到一个小压缩中。这有可能在一段时间后创建非常大的 SSTable。

使用 Leveled Compaction Strategy 有一个 sstable_size_in_mb 选项,用于控制 SSTables 的目标大小。一般来说,SSTables 将小于或等于这个大小,除非你有一个包含大量数据(“宽行”)的分区键。

我还没有对日期分层压缩策略进行太多实验,但它的工作原理类似于 STCS,因为它合并相同大小的文件,但它按时间顺序将数据放在一起,并且它具有停止压缩旧数据的配置(max_sstable_age_days ) 这可能很有趣。

关键是找到最适合您的数据的压缩策略,然后围绕最适合您的数据模型/环境的方式调整属性。

您可以阅读有关压缩 here 的配置设置的更多信息,并阅读 this guide 以帮助了解 STCS 或 LCS 是否适合您。

关于Cassandra 控制 SSTable 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29392153/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com