【问题标题】:Cassandra: how to automatically delete old records to avoid disk space shortage?Cassandra:如何自动删除旧记录以避免磁盘空间不足?
【发布时间】:2021-08-04 10:13:08
【问题描述】:

我们将 TWCS 用于时间序列数据,默认 TTL 为 30 天,压缩窗口大小为 1 天。

不幸的是,在某些情况下,传入的数据速率变得更高,并且没有太多的磁盘空间可以写入。同时,由于预算限制,无法向集群添加新节点。目前我们采用手动删除旧的sstables,但它容易出错。

在 TWCS 案例中,让 Cassandra 删除所有早于某个日期的记录的最佳方法是什么?我的意思不是在新的 sstable 中创建墓碑,而是实际从磁盘中删除旧记录以释放空间。

当然,我可以减少 TTL,但它只会影响新记录(所以从长远来看会有帮助,但不会立即),并且在没有太多传入数据记录的情况下将存储比可能的更短。

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    基本上,这就是 TTL 自动删除旧数据的目的。显式删除总是会创建一个墓碑,并且它不适用于 TWCS。所以现在解决方案是停止节点,删除旧文件以释放空间,启动节点 - 在所有节点上重复。但你已经这样做了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 2016-06-08
      • 2013-10-09
      • 2015-12-04
      相关资源
      最近更新 更多