1

Cassandra 1.0.2 を本番環境で何ヶ月も実行しており、トラブルは最小限に抑えられています。最近、すべてのノードで次のエラーが一貫して発生するようになりました。

ERROR [CompactionExecutor:199] 2013-03-02 00:21:26,179 AbstractCassandraDaemon.java (line 133) Fatal exception in thread Thread[CompactionExecutor:199,1,RMI Runtime]
java.io.IOError: java.io.IOException: Map failed
        at org.apache.cassandra.io.util.MmappedSegmentedFile$Builder.createSegments(MmappedSegmentedFile.java:225)
        at org.apache.cassandra.io.util.MmappedSegmentedFile$Builder.complete(MmappedSegmentedFile.java:202)
        at org.apache.cassandra.io.sstable.SSTableWriter.closeAndOpenReader(SSTableWriter.java:308)
        at org.apache.cassandra.db.compaction.CompactionTask.execute(CompactionTask.java:174)
        at org.apache.cassandra.db.compaction.CompactionManager$4.call(CompactionManager.java:275)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Map failed
        at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:758)
        at org.apache.cassandra.io.util.MmappedSegmentedFile$Builder.createSegments(MmappedSegmentedFile.java:217)
        ... 9 more
Caused by: java.lang.OutOfMemoryError: Map failed
        at sun.nio.ch.FileChannelImpl.map0(Native Method)
        at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:755)
        ... 10 more
INFO [Thread-2] 2013-03-02 00:21:26,222 MessagingService.java (line 488) Shutting down MessageService...

この後、ノードは停止します。最も古いデータ ファイルを削除し、ノードを再起動します。ノードはしばらく実行された後、再び停止します。これは、リング内の 8 つのノードすべてで発生します。デフォルトの圧縮戦略 (階層化されたサイズ) を使用しており、これが問題のドメインに最適な選択であると考えています。

Q:この問題が発生する理由と、修正するにはどうすればよいですか?

4

0 に答える 0