Ticket created at https://issues.apache.org/jira/browse/CASSANDRA-11933

Thanks
> On May 31, 2016, at 13:54, Paulo Motta <pauloricard...@gmail.com> wrote:
> 
> Good catch! It definitely makes sense to cache this call for a single
> repair job as it calls ReplicationStrategy.getAddressRanges underneath
> which can get pretty inefficient (
> https://github.com/apache/cassandra/blob/3dcbe90e02440e6ee534f643c7603d50ca08482b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java#L170
> ).
> 
> Would you mind creating a ticket and submitting a patch?
> 
> Thanks!
> 
> 2016-05-31 12:59 GMT-03:00 Cyril Scetbon <cyril.scet...@free.fr>:
> 
>> 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