You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2012/10/11 22:07:18 UTC
[3/3] git commit: Wait for writes on synchronous read digest mismatch
patch by Niklas Ekstrom; reviewed by jbellis and vijay for CASSANDRA-4792
Wait for writes on synchronous read digest mismatch
patch by Niklas Ekstrom; reviewed by jbellis and vijay for CASSANDRA-4792
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/936302cb
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/936302cb
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/936302cb
Branch: refs/heads/cassandra-1.1
Commit: 936302cb3876df87e6afb45c775850eb851e9b18
Parents: 4355aa8
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Oct 11 15:05:40 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Oct 11 15:05:40 2012 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/service/StorageProxy.java | 8 +++++---
2 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/936302cb/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 40cd7b4..1a37b8e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
1.1.6
+ * Wait for writes on synchronous read digest mismatch (CASSANDRA-4792)
* fix commitlog replay for nanotime-infected sstables (CASSANDRA-4782)
* preflight check ttl for maximum of 20 years (CASSANDRA-4771)
* (Pig) fix widerow input with single column rows (CASSANDRA-4789)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/936302cb/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index bc45e84..14466ee 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -762,9 +762,6 @@ public class StorageProxy implements StorageProxyMBean
{
ReadCommand command = repairCommands.get(i);
RepairCallback handler = repairResponseHandlers.get(i);
- // wait for the repair writes to be acknowledged, to minimize impact on any replica that's
- // behind on writes in case the out-of-sync row is read multiple times in quick succession
- FBUtilities.waitOnFutures(handler.resolver.repairResults, DatabaseDescriptor.getRpcTimeout());
Row row;
try
@@ -776,6 +773,11 @@ public class StorageProxy implements StorageProxyMBean
throw new AssertionError(e); // full data requested from each node here, no digests should be sent
}
+ // wait for the repair writes to be acknowledged, to minimize impact on any replica that's
+ // behind on writes in case the out-of-sync row is read multiple times in quick succession
+ FBUtilities.waitOnFutures(handler.resolver.repairResults, DatabaseDescriptor.getRpcTimeout());
+
+ // retry any potential short reads
ReadCommand retryCommand = command.maybeGenerateRetryCommand(handler, row);
if (retryCommand != null)
{