Cassandra 2.0.7至2.1.2 sstable upgradedesstables,压实问题

时间:2014-12-22 10:33:40

标签: database cassandra cassandra-2.0

我们将Cassandra(5 + 5节点)2.0.9升级到2.1.2(二进制文件)并逐个运行nodetool升级(bash脚本),之后我们发现了一些问题:

  1. 在我们观察到的每个节点上,其中一个节点上有50个“待处理任务”超过500个,它持续了5天 - 当我们启动nodetool升级时,即使concurrent_compactors设置为8,cassandra也不会超过3-4同时。一个超过500个待处理任务的节点在列族目录中有大约11k个文件... 我们有2个ssd磁盘,但在压缩过程中,读取速度最高可达10MB / s,写入速度最高可达5MB / s - 即使compaction_throughput_mb_per_sec设置为32或64或256

  2. 在某些表的升级期间获得:“WARN [RMI TCP连接(100)-10.64.72.34] 2014-12-21 23:53:18,953 ColumnFamilyStore.java:2492 - 无法取消正在进行的压缩对于reco_active_items_v1。也许某个地方正在进行异常大的行,或者系统只是过载了。 INFO [RMI TCP连接(100)-10.64.72.34] 2014-12-21 23:53:18,953 CompactionManager.java:247 - 在无法中断其他压缩操作后中止对reco_prod.reco_active_items_v1的操作“ nodetool失败,“在密钥空间reco_prod中为至少一个列族中止了sstables,请查看服务器日志以获取更多信息。”

  3. 在某些节点上,nodetool upgradedesstables成功完成,但仍然可以在列族目录中看到 jb 文件。

  4. 某些节点上的nodetool upgradedesstables返回: 错误:null - 堆栈跟踪 - 显示java.lang.NullPointerException     在org.apache.cassandra.io.sstable.SSTableReader.cloneWithNewStart(SSTableReader.java:952)     在org.apache.cassandra.io.sstable.SSTableRewriter.moveStarts(SSTableRewriter.java:250)     在org.apache.cassandra.io.sstable.SSTableRewriter.switchWriter(SSTableRewriter.java:300)     在org.apache.cassandra.io.sstable.SSTableRewriter.abort(SSTableRewriter.java:186)     在org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:204)     在org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)     在org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)     在org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:75)     在org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)     在org.apache.cassandra.db.compaction.CompactionManager $ 4.execute(CompactionManager.java:340)     在org.apache.cassandra.db.compaction.CompactionManager $ 2.call(CompactionManager.java:267)     在java.util.concurrent.FutureTask.run(FutureTask.java:262)     在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)     在java.lang.Thread.run(Thread.java:745)

  5. 这是我们的生产环境(24小时),我们观察到节点负载更高,读取延迟更高,甚至超过1秒。

    任何建议......?

0 个答案:

没有答案