【发布时间】:2019-04-02 07:16:50
【问题描述】:
我正在使用 Cassnadra 2.1.13 单节点集群,数据库运行良好,没有任何问题。
然后有以下异常,因为 Cassandra 服务被关闭。
在单节点集群中,这些异常的原因可能是什么,特别是同步失败,有什么提示或指针可以找到这个问题的根本原因吗?
INFO [MemtableFlushWriter:22] Memtable.java:347 - 写作 Memtable-compaction_history@1884003282(0.521KiB序列化字节,19 ops, 0%/0% of on/off-heap limit) INFO [MemtableFlushWriter:22] Memtable.java:382 - 完成刷新 /myspace/db/data/system/compaction_history-b4dbb7b4dc493fb5b3bfce6e434832ca/system-compaction_history-tmp-ka-8-Data.db (0.000KiB) 用于提交日志位置 ReplayPosition(segmentId=1540762960100, position=2642365) 错误 [MemtableFlushWriter:21] CassandraDaemon.java:229 - 异常 线程 Thread[MemtableFlushWriter:21,5,main] org.apache.cassandra.io.FSWriteError:java.io.SyncFailedException: 同步失败 在 org.apache.cassandra.io.util.SequentialWriter.syncDataOnlyInternal(SequentialWriter.java:254) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.util.SequentialWriter.syncInternal(SequentialWriter.java:263) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.util.SequentialWriter.close(SequentialWriter.java:451) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.compress.CompressedSequentialWriter.close(CompressedSequentialWriter.java:264) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.sstable.SSTableWriter.close(SSTableWriter.java:503) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.sstable.SSTableWriter.finish(SSTableWriter.java:455) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:447) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:442) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:389) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.db.Memtable$FlushRunnable.runMayThrow(Memtable.java:335) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) ~[guava-16.0.jar:na] 在 org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1120) ~[apache-cassandra-2.1.13.jar:2.1.13] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_192] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_192] 在 java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_192] 引起:java.io.SyncFailedException:同步失败 在 java.io.FileDescriptor.sync(本机方法)~[na:1.8.0_192] 在 org.apache.cassandra.io.util.SequentialWriter.syncDataOnlyInternal(SequentialWriter.java:250) ~[apache-cassandra-2.1.13.jar:2.1.13] ...省略了15个常用框架
错误 [MemtableFlushWriter:21] StorageService.java:453 - 正在停止 八卦警告 [MemtableFlushWriter:21] StorageService.java:359 - 通过操作员请求 INFO [MemtableFlushWriter:21] 停止八卦 Gossiper.java:1455 - 宣布关闭
重新启动 Cassandra 服务后,没有问题并按预期工作。
【问题讨论】:
-
通常这可能是提交日志所在的磁盘存在问题。
commitlog_sync参数的值是多少? -
默认的:commitlog_sync: 周期性的 commitlog_sync_period_in_ms: 10000