【问题标题】:Disabling commitlog in Cassandra在 Cassandra 中禁用提交日志
【发布时间】:2015-10-28 06:52:41
【问题描述】:

重新启动 Cassandra 节点时,会花费大量时间来重放提交日志以实现一致性。在我们的应用程序中,让节点快速恢复并运行比实现一致性更重要。因此,我们在所有手动创建的键空间上设置了“durable_writes = false”以禁用提交日志。 (我们还没有触及系统键空间)。尽管如此,当我们重新启动一个笔记时,它仍然需要大约一小时来重播提交日志。

  • 我的提交日志中还剩下什么?

  • 我可以以任何方式调查提交日志的内容吗?

  • 如何关闭commitlog(如果不是durable_writes = false)?

【问题讨论】:

    标签: cassandra datastax-enterprise


    【解决方案1】:

    durable_writes 是为每个键空间设置的,所以如果有任何键空间仍然启用它,那么提交日志中仍然会有突变以在启动时重播。您可能想要遍历describe schema 的输出。

    有一些表(即系统)您希望保持持久性,但它不应该对启动造成太大影响。启动时,它会记录其读取的键空间/表,以便您检查其重放的键空间/表。

    一小时是很长的时间,并且有一定的气味,这里可能发生了其他事情,可能需要进一步调查。一些想法是检查日志并确保它是提交日志重播需要时间(而不是重建索引摘要或其他东西)。还要检查是否存在 C* 无权删除的旧提交日志或会保留的内容。

    【讨论】:

    • 在系统或 dse 组件(如 OpsCenter)创建的键空间上只有耐用写入 = true。 commitlog 文件夹包含从上次节点重新启动到现在为止的所有提交日志文件。这些文件归“cassandra”用户所有。
    【解决方案2】:

    在关闭节点之前执行“nodetool drain”。这会将所有提交日志写入 sstables。

    【讨论】:

      猜你喜欢
      • 2016-11-25
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 2016-04-08
      • 2014-12-28
      • 1970-01-01
      相关资源
      最近更新 更多