【问题标题】:nodetool compact with TimeWindowCompactionStrategy tables带有 TimeWindowCompactionStrategy 表的 nodetool compact
【发布时间】:2019-05-14 23:19:52
【问题描述】:

使用 cassandra 版本 3.11.4,我们在使用 TimeWindowCompactionStrategy 创建的表中导入了几天的“类似时间序列”的数据,compaction_window_unit 以小时为单位,compaction_window_size 为 1:

CREATE TABLE MYTABLE (
  some_fields text,
(...)
AND compaction = {
  'class' : 'TimeWindowCompactionStrategy',
    'compaction_window_unit': 'HOURS',
    'compaction_window_size': 1
};

由于这是从另一个数据库导入的历史数据,我们以这种方式更改了插入查询的时间戳:

INSERT INTO MYTABLE (...) USING TIMESTAMP [timestamp of the record] AND TTL ...

其中 [timestamp of the record] 是插入的每个时间序列记录的时间戳。

显然这种方法有效,已验证在 org.apache.cassandra.db.compaction 包上启用 TRACE 级别日志记录:

TRACE [CompactionExecutor:421] ...TimeWindowCompactionStrategy.java:252 - buckets {
1523124000000=[BigTableReader(path='.../md-487-big-Data.db')], 
1523070000000=[BigTableReader(path='.../md-477-big-Data.db')], 
1523109600000=[BigTableReader(path='.../md-530-big-Data.db')], 
1523134800000=[BigTableReader(path='.../md-542-big-Data.db')] }, 
max timestamp 1523134800000

我们发现几个“一小时”大的桶。

当我们在每个 cassandra 节点上运行 nodetool compact 时,问题就出现了。

我们期望为每个“一小时桶”获得一个 sstable。 我们得到的是一个巨大的 sstable(每个节点),所有行都合并了!

这是假定的行为吗?我们是不是做错了什么?

【问题讨论】:

  • 我还想补充一点,我尝试使用 -s 并且它仍然在我的情况下创建了一个大的 sstable 文件。该结果与文档对该选项所说的非常矛盾:“使用 -s 不创建单个大文件”

标签: cassandra


【解决方案1】:

这是预期的行为。您可以使节点脱机并将 sstable 拆分为 X,或者等待所有 TTL 过期,然后观察单个大型 sstable 被清理。请记住关闭使用 STWS 对表的修复,否则,事情会变得一团糟。我很难学到这一点。否则,对于时间序列数据来说,这是一个很好的压缩策略。

【讨论】:

  • 好的。出于好奇,您从哪里得知这是预期的行为?官方文档,例如:docs.datastax.com/en/cassandra/3.0/cassandra/tools/… 说:“主要压缩的行为可能会有所不同,具体取决于受影响的表使用的压缩策略”。如果预期的行为是使单个稳定,那么压缩策略在哪里发挥作用?顺便说一句,感谢有关关闭修复的提示...在 STWS 表上启用修复会出现什么问题?
  • 我想我的“预期行为”是基于经验的。当我阅读 STWS 的文档时,它还声明它将立即开始将现有数据压缩到 Windows 中,但它没有。只有新的 sstables 会被放入“buckets”,而旧的sstables 会保留,直到达到全部窗口数,然后它开始丢弃旧的sstables(如果这有意义的话)。如果修复了旧记录,则将其放入较新的 sstable 中,从而导致删除由于重叠而延迟。因为我们是“稳定的”,我不认为有什么可以修复的。我错了。
猜你喜欢
  • 2016-04-03
  • 1970-01-01
  • 2015-12-07
  • 2019-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
相关资源
最近更新 更多