我正在使用Cassandra存储图片。我们目前正在从旧系统大规模迁移图片。一切都很有效,但最终我们在保存时会得到TimedOutException
,我认为这是因为工作队列已经填满了。
然而,在等待(几个小时)完成之后,情况继续相同(停止迁移后它不会自行恢复)
只有1个节点出现问题,其tpstats
命令显示以下数据
即使我们在几个小时前停止了插入,挂起的MutationStage操作仍在不断增加。
究竟是什么意思?什么是MutationStage?
经过这么长时间,我可以查看为什么它没有稳定?环中的所有其他服务器都处于0挂起操作。
我们尝试的任何新插入都会抛出TimedOutException
...异常。
如果有用的话,这是响铃信息
(有问题的节点是第一个)
编辑:日志中的最后几行如下
INFO [OptionalTasks:1] 2013-02-05 10:12:59,140 MeteredFlusher.java (line 62) flushing high-traffic column family CFS(Keyspace='pics_persistent', ColumnFamily='master') (estimated 92972117 bytes)
INFO [OptionalTasks:1] 2013-02-05 10:12:59,141 ColumnFamilyStore.java (line 643) Enqueuing flush of Memtable-master@916497516(74377694/92972117 serialized/live bytes, 141 ops)
INFO [OptionalTasks:1] 2013-02-05 10:14:49,205 MeteredFlusher.java (line 62) flushing high-traffic column family CFS(Keyspace='pics_persistent', ColumnFamily='master') (estimated 80689206 bytes)
INFO [OptionalTasks:1] 2013-02-05 10:14:49,207 ColumnFamilyStore.java (line 643) Enqueuing flush of Memtable-master@800272493(64551365/80689206 serialized/live bytes, 113 ops)
WARN [MemoryMeter:1] 2013-02-05 10:16:10,662 Memtable.java (line 197) setting live ratio to minimum of 1.0 instead of 0.0015255633589225548
INFO [MemoryMeter:1] 2013-02-05 10:16:10,663 Memtable.java (line 213) CFS(Keyspace='pics_persistent', ColumnFamily='master') liveRatio is 1.0 (just-counted was 1.0). calculation took 38ms for 86 columns
INFO [OptionalTasks:1] 2013-02-05 10:16:33,267 MeteredFlusher.java (line 62) flushing high-traffic column family CFS(Keyspace='pics_persistent', ColumnFamily='master') (estimated 71029403 bytes)
INFO [OptionalTasks:1] 2013-02-05 10:16:33,269 ColumnFamilyStore.java (line 643) Enqueuing flush of Memtable-master@143498560(56823523/71029403 serialized/live bytes, 108 ops)
INFO [ScheduledTasks:1] 2013-02-05 11:36:27,798 GCInspector.java (line 122) GC for ParNew: 243 ms for 1 collections, 1917768456 used; max is 3107979264
INFO [ScheduledTasks:1] 2013-02-05 13:00:54,090 GCInspector.java (line 122) GC for ParNew: 327 ms for 1 collections, 1966976760 used; max is 3107979264
答案 0 :(得分:2)
我猜你只是在写一个节点超载你的节点 - 也就是你写得比它能够消化得快。如果您的写作很大,这很容易。
即使您停止写入群集,MutationStage也在增加,因为其他节点仍在处理排队的突变请求并且将副本发送到此重载节点。
我不知道为什么其中一个节点过载,因为可能有以下几个原因: