【问题标题】:Restart instance cassandra - commitlog, saved cache warnings?重新启动实例 cassandra - 提交日志,保存缓存警告?
【发布时间】:2019-08-02 22:28:42
【问题描述】:

我在节点重启时看到这些消息。它们是什么意思?

INFO  [main] 2019-08-01 23:21:16,645 ViewManager.java:137 - Not submitting build tasks for views in keyspace system_traces as storage service is not initialized
INFO  [pool-3-thread-1] 2019-08-01 23:21:16,646 AutoSavingCache.java:198 - reading saved cache apache-cassandra-3.11.3/bin/../data/saved_caches/KeyCache-e.db
INFO  [pool-3-thread-1] 2019-08-01 23:21:16,678 AutoSavingCache.java:263 - Harmless error reading saved cache /home/cassadmin/apache-cassandra-3.11.3/bin/../data/saved_caches/KeyCache-e.db
INFO  [pool-3-thread-1] 2019-08-01 23:21:16,679 AutoSavingCache.java:174 - Completed loading (33 ms; 41 keys) KeyCache cache
INFO  [main] 2019-08-01 23:21:16,706 CommitLogReader.java:105 - Skipping playback of empty log: CommitLog-6-1557227264256.log
INFO  [main] 2019-08-01 23:21:17,360 CommitLog.java:159 - Log replay complete, 12 replayed mutations –
INFO  [main] 2019-08-01 23:21:17,364 StorageService.java:600 - Populating token metadata from system tables

【问题讨论】:

  • 那么问题到底出在哪里?你能用你自己的话详细说明一下吗?
  • 当你启动节点时会混淆这个消息。
  • INFO [pool-3-thread-1] 2019-08-01 23:21:16,679 AutoSavingCache.java:174 - 完成加载(33 毫秒;41 个键)KeyCache 缓存
  • INFO [main] 2019-08-01 23:21:16,706 CommitLogReader.java:105 - 跳过空日志的播放:CommitLog-6-1557227264256.log
  • INFO [main] 2019-08-01 23:21:17,360 CommitLog.java:159 - 日志重放完成,12 个重放突变

标签: cassandra cassandra-3.0


【解决方案1】:

有时您会在启动时在 system.log 中看到类似的消息。通过阅读这些消息,(对我来说)您似乎已经清除了节点的数据,但也没有擦除 commitlogsaved_caches 目录。无论如何,这就是它们的意思:

INFO  [pool-3-thread-1] 2019-08-01 23:21:16,646 AutoSavingCache.java:198 - reading saved cache apache-cassandra-3.11.3/bin/../data/saved_caches/KeyCache-e.db
INFO  [pool-3-thread-1] 2019-08-01 23:21:16,678 AutoSavingCache.java:263 - Harmless error reading saved cache /home/cassadmin/apache-cassandra-3.11.3/bin/../data/saved_caches/KeyCache-e.db
INFO  [pool-3-thread-1] 2019-08-01 23:21:16,679 AutoSavingCache.java:174 - Completed loading (33 ms; 41 keys) KeyCache cache

Cassandra 在启动时检查saved_caches 目录。基本上,如果您启用了键缓存(默认)或启用了行缓存,它们确实会持久化到磁盘上。这样就可以在启动时加载它们,以使您的键/行缓存变热。

如果 saved_caches 目录的内容与 Cassandra 存储的内容不匹配,通常会在读取 saved_caches 目录时看到错误。

INFO  [main] 2019-08-01 23:21:16,706 CommitLogReader.java:105 - Skipping playback of empty log: CommitLog-6-1557227264256.log
INFO  [main] 2019-08-01 23:21:17,360 CommitLog.java:159 - Log replay complete, 12 replayed mutations –

在启动时,Cassandra 还会检查提交日志。这是一项安全检查,有助于确保数据的持久性。写入数据时,它同时写入 RAM(memtable)和磁盘(commitlog)。如果节点意外关闭并且没有机会将内存表刷新到磁盘,commitlog 目录中将存在孤立文件条目。然后读取这些文件并与存储在磁盘上的 SSTables 中的数据进行协调。

如果一个节点突然关闭,在commitlog 目录中看到损坏或空文件并不少见,这些文件将被适当地标记。

但基本上,此类消息只是提供信息,并不一定表明您的节点或集群有任何问题。

专业提示: Cassandra 3.11.3 存在一个错误,可能导致删除时数据损坏 (CASSANDRA-14672)。您应该升级到 3.11.4,这不是问题。

【讨论】:

    猜你喜欢
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多