我们在单节点开发机器上遇到1.2.3/1.2.4(datastax community edition)的随机sstable损坏,该机器使用一个数据模型,该模型具有来自多个列的宽行pov的混合读/写负载。写比读更频繁。问题表现为堆栈跟踪,如:
ERROR [ReadStage:13899] 2013-04-24 07:09:00,770 CassandraDaemon.java (line 132) Exception in thread Thread[ReadStage:13899,5,main]
java.lang.RuntimeException: org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.EOFException
at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1582)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.EOFException
at org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:106)
... many more
Caused by: java.io.EOFException
at java.io.RandomAccessFile.readFully(Unknown Source)
... many more
或
java.lang.RuntimeException: org.apache.cassandra.io.sstable.CorruptSSTableException: org.apache.cassandra.db.ColumnSerializer$CorruptColumnException: invalid column name length 0
不幸的是,我们还没有一个可复制的测试用例,因为这是随机发生的(例如几天后),而不是立即发生的。
在这个/其他论坛中,我也研究过1.2的类似问题。
问题是:您对Cassandra1.2的生产经验如何,还是建议1.1成为1.2系列中迄今为止最新的1.2.4版本?
当我们在单节点开发环境中遇到这些问题时,当在由多个节点服务的集群中运行全部内容时,可能会备份一些内容,但在我们看来,这些内容也应该在单节点上运行而不会损坏。
如有任何提示,不胜感激。谢谢。
1条答案
按热度按时间oewdyzsn1#
我有更好的经验,Cassandra-1.1的生产。当前版本1.2.6仍然没有通过我们繁重的预生产测试。