cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Stupp (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-11933) Cache local ranges when calculating repair neighbors
Date Wed, 15 Jun 2016 09:51:09 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-11933?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Robert Stupp updated CASSANDRA-11933:
-------------------------------------
       Resolution: Fixed
    Fix Version/s: 3.0.8
                   3.8
                   2.2.7
                   2.1.15
           Status: Resolved  (was: Ready to Commit)

Nice stuff!

Committed as 2f74831f4218142f6e118678a3c74c79c1f7e1ed to 2.1 and merged to trunk (cherry-picked
from Paulo's branches).

> Cache local ranges when calculating repair neighbors
> ----------------------------------------------------
>
>                 Key: CASSANDRA-11933
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11933
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Cyril Scetbon
>            Assignee: Mahdi Mohammadi
>             Fix For: 2.1.15, 2.2.7, 3.8, 3.0.8
>
>
> During  a full repair on a ~ 60 nodes cluster, I've been able to see that this stage
can be significant (up to 60 percent of the whole time) :
> 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 {code}ss.getLocalRanges(keyspaceName){code} 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.

> Underneath it calls [ReplicationStrategy.getAddressRanges|https://github.com/apache/cassandra/blob/3dcbe90e02440e6ee534f643c7603d50ca08482b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java#L170]
which can get pretty inefficient ([~jbellis]'s [words|https://github.com/apache/cassandra/blob/3dcbe90e02440e6ee534f643c7603d50ca08482b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java#L165])
> *ss.getLocalRanges(keyspaceName)* should be cached to avoid having to spend hours on
it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message