【问题标题】:Cassandra system hints large partitionCassandra 系统提示大分区
【发布时间】:2018-03-14 12:34:48
【问题描述】:

我们使用的是 cassandra 2.1.14。目前在 system.hints 表上可以看到大分区警告。

如何确保 system.hints 表没有宽分区? 请注意,我们现在不想升级到 cassandra 3。

是否有定期清理 system.hints 的方法?

这会导致 cassandra 集群中的 I/O 峰值吗?

日志:

 Compacting large partition system/hints:
 10ad72eb-0240-4b94-b73e-eb4dc2aa759a (481568345 bytes)

【问题讨论】:

  • 至于清理提示表应该有一个默认的 3 小时 TTL。
  • 我很好奇为什么提示表这么大?您是否有一个或多个节点长时间停机?一旦您的集群完全运行,提示应该被传递到正确的节点,然后 TTL'd out of the table。
  • 在 3 小时后获得 TTL。但即使在此之前,我们也看到它正在被填满。从日志中我们可以看到许多未记录的批次。我们怀疑这会导致大的 system.hints 分区。我们不确定

标签: cassandra cassandra-2.1


【解决方案1】:

如何确保 system.hints 表没有宽分区?

您对此无能为力。 system.hintstarget_id 上进行分区,这是目标节点的主机ID。如果为一个节点建立 10000 个提示,那么它们真的没有其他地方可以去。

是否有定期清理 system.hints 的方法?

如上所述,提示应在 3 小时后 TTL。此故障保护旨在防止system.hints 表过于失控。但这根本不是万无一失的。

确定的一种方法是通过 nodetool 清除它们:

nodetool truncatehints

这会导致 cassandra 集群中的 I/O 峰值吗?

运行nodetool truncatehints 是相当无害的。我之前没有注意到运行它的峰值。

【讨论】:

  • 感谢您的回答。我的问题是 I/O 尖峰是由 system.hints 大分区引起的吗?
猜你喜欢
  • 2015-12-15
  • 2020-01-16
  • 1970-01-01
  • 2021-11-15
  • 1970-01-01
  • 2023-03-12
  • 2012-03-24
  • 1970-01-01
  • 2019-03-02
相关资源
最近更新 更多