You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2014/01/29 04:53:16 UTC
git commit: Avoid rare duplicate read repair triggering
Updated Branches:
refs/heads/cassandra-2.0 d9f9c5b21 -> 09ab439b4
Avoid rare duplicate read repair triggering
patch by Yang Wei; reviewed by Aleksey Yeschenko for CASSANDRA-6606
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/09ab439b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/09ab439b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/09ab439b
Branch: refs/heads/cassandra-2.0
Commit: 09ab439b497e8f8db3eeff1db6559f0e6d1d34eb
Parents: d9f9c5b
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Tue Jan 28 21:50:20 2014 -0600
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Jan 28 21:50:20 2014 -0600
----------------------------------------------------------------------
CHANGES.txt | 1 +
src/java/org/apache/cassandra/service/ReadCallback.java | 8 ++++----
2 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/09ab439b/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 46b14fc..8e757b2 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,6 +10,7 @@
* Don't special case received counts in CAS timeout exceptions (CASSANDRA-6595)
* Add support for 2.1 global counter shards (CASSANDRA-6505)
* Fix NPE when streaming connection is not yet established (CASSANDRA-6210)
+ * Avoid rare duplicate read repair triggering (CASSANDRA-6606)
Merged from 1.2:
* fsync compression metadata (CASSANDRA-6531)
* Validate CF existence on execution for prepared statement (CASSANDRA-6535)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/09ab439b/src/java/org/apache/cassandra/service/ReadCallback.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/ReadCallback.java b/src/java/org/apache/cassandra/service/ReadCallback.java
index d665242..afff530 100644
--- a/src/java/org/apache/cassandra/service/ReadCallback.java
+++ b/src/java/org/apache/cassandra/service/ReadCallback.java
@@ -117,7 +117,7 @@ public class ReadCallback<TMessage, TResolved> implements IAsyncCallback<TMessag
if (n >= blockfor && resolver.isDataPresent())
{
condition.signalAll();
- maybeResolveForRepair();
+ maybeResolveForRepair(n);
}
}
@@ -151,11 +151,11 @@ public class ReadCallback<TMessage, TResolved> implements IAsyncCallback<TMessag
/**
* Check digests in the background on the Repair stage if we've received replies
- * too all the requests we sent.
+ * to all the requests we sent.
*/
- protected void maybeResolveForRepair()
+ protected void maybeResolveForRepair(int n)
{
- if (blockfor < endpoints.size() && received.get() == endpoints.size())
+ if (blockfor < endpoints.size() && n == endpoints.size())
{
assert resolver.isDataPresent();
StageManager.getStage(Stage.READ_REPAIR).execute(new AsyncRepairRunner());