gpt4 book ai didi

cassandra - 如何配置 Cassandra TimeWindowCompactionStrategy

转载 作者:行者123 更新时间:2023-12-01 07:33:26 25 4
gpt4 key购买 nike

我的时间序列数据 TTLs 1-7 天后(取决于用例)。
数据是不可变的,并按时间戳排序 ( cluster by timestamp ) - 数据带有“写入时”的时间戳(因此新数据时间戳应始终是渐进式的)

分区大小不应超过 10K 个项目 - 通常少得多(对于完整的 10k 个项目,最多 ~ 10MB)。

我没有找到任何关于如何配置压缩策略的好的文档(要考虑哪些参数),所以我决定这样做:

compaction = {'class': 'TimeWindowCompactionStrategy', 'compaction_window_size': '7', 'compaction_window_unit': 'DAYS'}

绝对不确定这是正确的

什么是 KPI我应该考虑吗?

最佳答案

没有唯一的正确答案:

由于您的配置,如果数据是在过去 7 天内插入的,则数据将被压缩在一起。 TWCS 的最大优点是它可以使整个 SSTable 过期,甚至不需要读取它们,因为它知道 SSTable 中的所有数据都已经过期。

在这种情况下,您在 1 天内 TTLd 的数据还不能过期,因为它将在 7 天的窗口中集中在一起。在最坏的情况下,您的 SSTable 将有一个刚刚在 7 天窗口结束时插入的突变,因此整个 SSTable 将再保留 7 天,直到该突变过期。

这听起来不太理想,但至少您将能够从单个 SSTable 为该窗口中的所有数据读取提供服务。反过来说,例如,您可以将窗口设置为一天。这将使您的数据过期得更快,但对于存活 7 天的数据,您现在将接触 7 个 SSTables 而不是一个。

概括:

更大的时间窗口:更慢的到期时间,更快地读取实时数据
更小的时间窗口:更快的到期时间,更慢的实时数据读取。

与生活中的大多数事情一样,真相就在中间!虽然这两种选择都有效——而且您现在了解权衡,但最好的窗口可能在 1 和 7 的中间。

关于cassandra - 如何配置 Cassandra TimeWindowCompactionStrategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52716711/

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