Cassandra提交日志同步

时间:2018-05-16 21:44:07

标签: cassandra

WARN  [PERIODIC-COMMIT-LOG-SYNCER] 2018-05-16 21:11:14,294 NoSpamLogger.java:94 - Out of 0 commit log syncs over the past 0.00s with average duration of Infinityms, 1 have exceeded the configured commit interval by an average of 74.40ms
WARN  [PERIODIC-COMMIT-LOG-SYNCER] 2018-05-16 21:16:57,844 NoSpamLogger.java:94 - Out of 0 commit log syncs over the past 0.00s with average duration of Infinityms, 1 have exceeded the configured commit interval by an average of 198.69ms
WARN  [PERIODIC-COMMIT-LOG-SYNCER] 2018-05-16 21:24:46,325 NoSpamLogger.java:94 - Out of 0 commit log syncs over the past 0.00s with average duration of Infinityms, 1 have exceeded the configured commit interval by an average of 264.11ms
WARN  [PERIODIC-COMMIT-LOG-SYNCER] 2018-05-16 21:29:46,393 NoSpamLogger.java:94 - Out of 32 commit log syncs over the past 268.84s with, average duration of 17.56ms, 1 have exceeded the configured commit interval by an average of 173.66ms

当群集处于中等负载时,我的debug.log充满了这些警告。这有什么值得担心的吗?我的提交日志间隔是10000毫秒。

2 个答案:

答案 0 :(得分:2)

只要冲洗期间小于1.5 *冲洗期(在您的情况下为15000),这不是什么大问题。只是忽略它。

显示Infinityms是统计信息记者中的零错误。你可以在https://issues.apache.org/jira/projects/CASSANDRA开一个Jira来解决它吗?我不认为有报道。

答案 1 :(得分:2)

https://issues.apache.org/jira/browse/CASSANDRA-14451现在有一个固定的问题,可能会影响这些消息的准确性(取决于版本)

Jason Brown说:

该错误是将wakeUpAt变量中的markerIntervalNanos用作确定我们是否已滞后于实际刷新到磁盘的基础。该代码应使用syncIntervalNanos进行确定。再次,这里唯一的问题是确定是否应该记录有关提交日志刷新的信息,而不是确认提交日志实际上是落后的(至少在这里不存在关于覆盖日志的信息)。大部分更改是将日志记录代码从主要的AbstractCommitLogService.SyncRunnable#sync()移到了子例程中。这使我可以添加单元测试,以及清理/澄清sync()方法。 根据{{​​3}}

中Jason的介绍

因此,如果您使用的是受影响的版本,则很遗憾,该计算是错误的(其他版本中有许多性能下降)。