Thanks, good work. 

Cheers

-----------------
Aaron Morton
Freelance Developer
@aaronmorton
http://www.thelastpickle.com

On 9/01/2012, at 1:25 PM, Caleb Rackliffe wrote:

> After some searching, I think I may have found something in the code itself, 
> and so I've filed a big report - 
> https://issues.apache.org/jira/browse/CASSANDRA-3711
> 
> Caleb Rackliffe | Software Developer  
> M 949.981.0159 | ca...@steelhouse.com
> 
> 
> From: Caleb Rackliffe <ca...@steelhouse.com>
> Reply-To: "user@cassandra.apache.org" <user@cassandra.apache.org>
> Date: Sun, 8 Jan 2012 17:48:59 -0500
> To: "user@cassandra.apache.org" <user@cassandra.apache.org>
> Cc: "aa...@thelastpickle.com" <aa...@thelastpickle.com>
> Subject: Re: Lots and Lots of CompactionReducer Threads
> 
> With the exception of a few little warnings on start-up about the Memtable 
> live ratio, there is nothing at WARN or above in the logs.  Just before the 
> JVM terminates, there are about 10,000 threads in Reducer executor pools that 
> look like this in JConsole …
> 
> 
> Name: CompactionReducer:1
> State: TIMED_WAITING on 
> java.util.concurrent.SynchronousQueue$TransferStack@72938aea
> Total blocked: 0  Total waited: 1
> 
> Stack trace: 
>  sun.misc.Unsafe.park(Native Method)
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
> java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)
> java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:359)
> java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942)
> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043)
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> java.lang.Thread.run(Thread.java:722)
> 
> 
> The results from tpstats don't look too interesting…
> 
> Pool Name                    Active   Pending      Completed   Blocked  All 
> time blocked
> ReadStage                         0         0        3455159         0        
>          0
> RequestResponseStage              0         0       10133276         0        
>          0
> MutationStage                     0         0        5898833         0        
>          0
> ReadRepairStage                   0         0        2078449         0        
>          0
> ReplicateOnWriteStage             0         0              0         0        
>          0
> GossipStage                       0         0         236388         0        
>          0
> AntiEntropyStage                  0         0              0         0        
>          0
> MigrationStage                    0         0              0         0        
>          0
> MemtablePostFlusher               0         0            231         0        
>          0
> StreamStage                       0         0              0         0        
>          0
> FlushWriter                       0         0            231         0        
>          0
> MiscStage                         0         0              0         0        
>          0
> InternalResponseStage             0         0              0         0        
>          0
> HintedHandoff                     0         0             35         0        
>          0
> 
> Message type           Dropped
> RANGE_SLICE                  0
> READ_REPAIR                  0
> BINARY                       0
> READ                         0
> MUTATION                     0
> REQUEST_RESPONSE             0
> 
> The results from info seem unremarkable as well…
> 
> Token            : 153127065000000000000000000000000000000
> Gossip active    : true
> Load             : 5.6 GB
> Generation No    : 1325995515
> Uptime (seconds) : 67199
> Heap Memory (MB) : 970.32 / 1968.00
> Data Center      : datacenter1
> Rack             : rack1
> Exceptions       : 0
> 
> I'm using LeveledCompactionStrategy with no throttling, and I'm not changing 
> the default on the number of concurrent compactors.
> 
> What is interesting to me here is that Cassandra creates an executor for 
> every single compaction in ParallelCompactionIterable.  Why couldn't we just 
> create a pool with Runtime.availableProcessors() Threads and be done with it?
> 
> Let me know if I left any info out.
> 
> Thanks!
> 
> Caleb Rackliffe | Software Developer  
> M 949.981.0159 | ca...@steelhouse.com
> 
> 
> From: aaron morton <aa...@thelastpickle.com>
> Reply-To: "user@cassandra.apache.org" <user@cassandra.apache.org>
> Date: Sun, 8 Jan 2012 16:51:50 -0500
> To: "user@cassandra.apache.org" <user@cassandra.apache.org>
> Subject: Re: Lots and Lots of CompactionReducer Threads
> 
> How many threads ? Any errors in the server logs ? 
> 
> What does noodtool tpstats and nodetool compactionstats say ? 
> 
> Did you change compaction_strategy for the CF's ? 
> 
> By default cassandra will use as many compaction threads as you have cores, 
> see concurrent_compactors in cassandra.yaml
> 
> Have you set the JVM heap settings ? What does nodetool info show ? 
> 
> Hope that helps. 
> 
> -----------------
> Aaron Morton
> Freelance Developer
> @aaronmorton
> http://www.thelastpickle.com
> 
> On 8/01/2012, at 3:51 PM, Caleb Rackliffe wrote:
> 
>> Hi Everybody,
>> 
>> JConsole tells me I've got CompactionReducer threads stacking up, consuming 
>> memory, and never going away.  Eventually, my Java process fails because it 
>> can't allocate any more native threads.  Here's my setup…
>> 
>> Cassandra 1.0.5 on CentOS 6.0
>> 4 GB of RAM
>> 50 GB SSD HD
>> Memtable flush threshold = 128 MB
>> compaction throughput limit = 16 MB/sec
>> Multithreaded compaction = true
>> 
>> It may very well be that I'm doing something strange here, but it seems like 
>> those compaction threads should go away eventually.  I'm hoping the 
>> combination of a low Memtable flush threshold, low compaction T/P limit, and 
>> heavy write load doesn't mean those threads are hanging around because 
>> they're actually not done doing their compaction tasks.
>> 
>> Thanks,
>> 
>> Caleb Rackliffe | Software Developer 
>> M 949.981.0159 | ca...@steelhouse.com
>> 
> 

Reply via email to