Hi C* developers,

Digging in the code because of a time issue during  a repair full on our ~ 60 
nodes cluster, I've been able to see that this stage can be significant (up to 
60 percent of) :

https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/service/StorageService.java#L2983-L2997

It's merely caused by the fact that 
https://github.com/apache/cassandra/blob/cassandra-2.1/src/java/org/apache/cassandra/service/ActiveRepairService.java#L189
 calls `ss.getLocalRanges(keyspaceName)` everytime and that it takes more than 
99% of the time. This call takes 600ms when there is no load on the cluster and 
more if there is. So for 10k ranges, you can imagine that it takes at least 1.5 
hours just to compute ranges. Don't you think that caching this call would make 
sense ?
 
-- 
Cyril SCETBON

Reply via email to