Cassandra 1.2迁移:管道破裂

时间:2013-01-22 09:58:14

标签: cassandra

我们将我们的集群迁移到Cassandra 1.2(从1.1.7开始),我们尝试在迁移后运行修复(我们按照建议定期运行它们)。

由于SSTable版本不同,修复失败,因此我们使用nodetool upgradesstablesnodetool scrub并重试。

但是修复因此异常而失败:

java.io.IOException: Broken pipe
    at com.google.common.base.Throwables.propagate(Throwables.java:160)
    at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:32)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Broken pipe
    at sun.nio.ch.FileChannelImpl.transferTo0(Native Method)
    at sun.nio.ch.FileChannelImpl.transferToDirectly(Unknown Source)
    at sun.nio.ch.FileChannelImpl.transferTo(Unknown Source)
    at org.apache.cassandra.streaming.compress.CompressedFileStreamTask.stream(CompressedFileStreamTask.java:90)
    at org.apache.cassandra.streaming.FileStreamTask.runMayThrow(FileStreamTask.java:91)
    at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)

我们还注意到,在临终前,nodetool netstats显示了奇怪的统计数据(SSTable转移为756845%......)。

修改

传输compressend SSTable似乎有问题,我将尝试在此ColumnFamily上禁用压缩并重试。

RE-修改

禁用压缩修复了问题,因此我们尝试重新启用它并获得了

java.lang.RuntimeException:
  Last written key DecoratedKey(97115[...]3136) >= current key DecoratedKey(8...

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

问题是由Cassandra 1.2中的错误引起的,影响节点之间压缩列系列的传输。它固定在1.2.2 => Jira entry for this bug