[jira] [Updated] (CASSANDRA-6566) Differencer should not run in AntiEntropy Stage
[ https://issues.apache.org/jira/browse/CASSANDRA-6566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-6566: -- Attachment: 6566-followup.txt 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-v3.txt, 6566-2.0.txt, 6566-followup.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)
[jira] [Updated] (CASSANDRA-6566) Differencer should not run in AntiEntropy Stage
[ 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-v3.txt V3 attached. Rebased and removed empty RepairJob#terminate method. I just leave the method name RepairSession#terminate as is for now. 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-v3.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)
[jira] [Updated] (CASSANDRA-6566) Differencer should not run in AntiEntropy Stage
[ 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 SetDifferencer 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)
[jira] [Updated] (CASSANDRA-6566) Differencer should not run in AntiEntropy Stage
[ 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.txt (also: https://github.com/yukim/cassandra/tree/6566-1) Two improvements in the patch: * Remove snapshot latch so that snapshotting does not block ANTI_ENTROPY stage. * Move differencers from ANTI_ENTROPY stage to different executor. 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 Priority: Minor Attachments: 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)
[jira] [Updated] (CASSANDRA-6566) Differencer should not run in AntiEntropy Stage
[ https://issues.apache.org/jira/browse/CASSANDRA-6566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-6566: -- Fix Version/s: 2.0.6 Assignee: Yuki Morishita 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.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)
[jira] [Updated] (CASSANDRA-6566) Differencer should not run in AntiEntropy Stage
[ https://issues.apache.org/jira/browse/CASSANDRA-6566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-6566: -- Reviewer: sankalp kohli Can you review, [~kohlisankalp]? 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.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)