- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的时间序列数据 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/
我的时间序列数据 TTLs 1-7 天后(取决于用例)。 数据是不可变的,并按时间戳排序 ( cluster by timestamp ) - 数据带有“写入时”的时间戳(因此新数据时间戳应始终是渐进
我是一名优秀的程序员,十分优秀!