cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yuki Morishita (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-6566) Differencer should not run in AntiEntropy Stage
Date Fri, 14 Feb 2014 21:42:20 GMT

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

Yuki Morishita updated CASSANDRA-6566:
--------------------------------------

    Attachment: 6566-2.0-v2.txt

Attaching v2.

bq. 1) private final Set<Differencer> differencers = new HashSet<>();  This needs
to be a concurrent set as it is updated from multiple threads.

differencers is guarded by synchronized method, as it was.
 
bq. 2) This will create a new thread pool per job. Not a big deal but can’t we do it per
session?

Moved it to session. That way we can shutdown executors cleanly.

bq. 3) sendTreeRequestsInternal(endpoints); Should it not be allEndpoints?

Good catch! Fixed. (not the one in anonymous FutureCallback).

bq, Also before this change, I can see that we were sending snapshot command to only neighbours
and not itself. Why is it like this?

I noticed it too and changed to send snapshot to the node itself. I think it is a mistake
to not include itself by looking at original CASSANDRA-3721.

> Differencer should not run in AntiEntropy Stage
> -----------------------------------------------
>
>                 Key: CASSANDRA-6566
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6566
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: sankalp kohli
>            Assignee: Yuki Morishita
>            Priority: Minor
>             Fix For: 2.0.6
>
>         Attachments: 6566-2.0-v2.txt, 6566-2.0.txt
>
>
> The Differencing currently runs in AntiEntropy stage. When there are lot of ranges which
do not match, it takes sometime to compute the diff in ranges. Also with increase in Merkle
tree height it will take even more time in case of large diffs. 
> This causes other things to get blocked behind this. 
> Also no other repair messages can be processed.  
> Example: If a node is doing differencing for a repair, and Validation compaction is done
for another repair, it needs to block to send the tree over till Differencing is done.  



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message