Just wondering, would it help if we shorten the rpc_timeout_in_ms (currently 
using 30,000), so that when one node gets hot and responding slowly, others 
will just take it as down and move forward?

On Aug 17, 2011, at 11:35 AM, Hefeng Yuan wrote:

> Sorry, correction, we're using 0.8.1.
> 
> On Aug 17, 2011, at 11:24 AM, Hefeng Yuan wrote:
> 
>> Hi,
>> 
>> We're noticing that when one node gets hot (very high cpu usage) because of 
>> 'nodetool repair', the whole cluster's performance becomes really bad.
>> 
>> We're using 0.8.1 with random partition. We have 6 nodes with RF 5. Our 
>> repair is scheduled to run once a week, spread across whole cluster. I do 
>> get suggestion from Jonothan that 0.8.0 has some bug on the repair, but 
>> wondering why one hot node would slow down the whole cluster.
>> 
>> We saw this symptom yesterday on one node, and today on the adjacent node. 
>> Most probably it'll happen on the next one tomorrow.
>> 
>> We do see lots of (~200) RejectedExecutionException 3 hours before the 
>> repair job, and also in the middle of the repair job, not sure whether 
>> they're related. Full stack is attached in the end.
>> 
>> Do we have any suggestion/hint?
>> 
>> Thanks,
>> Hefeng
>> 
>> 
>> ERROR [pool-2-thread-3097] 2011-08-17 08:42:38,118 Cassandra.java (line 
>> 3462) Internal error processing batch_mutate
>> java.util.concurrent.RejectedExecutionException: ThreadPoolExecutor has shut 
>> down
>>      at 
>> org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor$1.rejectedExecution(DebuggableThreadPoolExecutor.java:73)
>>      at 
>> java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
>>      at 
>> java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
>>      at 
>> org.apache.cassandra.service.StorageProxy.insertLocal(StorageProxy.java:360)
>>      at 
>> org.apache.cassandra.service.StorageProxy.sendToHintedEndpoints(StorageProxy.java:241)
>>      at 
>> org.apache.cassandra.service.StorageProxy.access$000(StorageProxy.java:62)
>>      at 
>> org.apache.cassandra.service.StorageProxy$1.apply(StorageProxy.java:99)
>>      at 
>> org.apache.cassandra.service.StorageProxy.performWrite(StorageProxy.java:210)
>>      at 
>> org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:154)
>>      at 
>> org.apache.cassandra.thrift.CassandraServer.doInsert(CassandraServer.java:560)
>>      at 
>> org.apache.cassandra.thrift.CassandraServer.internal_batch_mutate(CassandraServer.java:511)
>>      at 
>> org.apache.cassandra.thrift.CassandraServer.batch_mutate(CassandraServer.java:519)
>>      at 
>> org.apache.cassandra.thrift.Cassandra$Processor$batch_mutate.process(Cassandra.java:3454)
>>      at 
>> org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2889)
>>      at 
>> org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:187)
>>      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)
>> ERROR [Thread-137480] 2011-08-17 08:42:38,121 AbstractCassandraDaemon.java 
>> (line 113) Fatal exception in thread Thread[Thread-137480,5,main]
>> java.util.concurrent.RejectedExecutionException: ThreadPoolExecutor has shut 
>> down
>>      at 
>> org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor$1.rejectedExecution(DebuggableThreadPoolExecutor.java:73)
>>      at 
>> java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
>>      at 
>> java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
>>      at 
>> org.apache.cassandra.net.MessagingService.receive(MessagingService.java:444)
>>      at 
>> org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:117)
> 

Reply via email to