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 2011/01/05 08:05:56 UTC
svn commit: r1055322 - in /cassandra/branches/cassandra-0.7: CHANGES.txt
src/java/org/apache/cassandra/service/ReadResponseResolver.java
Author: jbellis
Date: Wed Jan 5 07:05:55 2011
New Revision: 1055322
URL: http://svn.apache.org/viewvc?rev=1055322&view=rev
Log:
update CHANGES and add back results.remove call for CASSANDRA-982
patch by jbellis
Modified:
cassandra/branches/cassandra-0.7/CHANGES.txt
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/ReadResponseResolver.java
Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1055322&r1=1055321&r2=1055322&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Wed Jan 5 07:05:55 2011
@@ -10,6 +10,8 @@ dev
* Make snitches configurable at runtime (CASSANDRA-1374)
* retry hadoop split requests on connection failure (CASSANDRA-1927)
* implement describeOwnership for BOP, COPP (CASSANDRA-1928)
+ * make read repair behave as expected for ConsistencyLevel > ONE
+ (CASSANDRA-982)
0.7.0-rc4
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/ReadResponseResolver.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/ReadResponseResolver.java?rev=1055322&r1=1055321&r2=1055322&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/ReadResponseResolver.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/ReadResponseResolver.java Wed Jan 5 07:05:55 2011
@@ -91,6 +91,10 @@ public class ReadResponseResolver implem
// validate digests against each other; throw immediately on mismatch.
// also, collects data results into versions/endpoints lists.
+ //
+ // results are cleared as we process them, to avoid unnecessary duplication of work
+ // when resolve() is called a second time for read repair on responses that were not
+ // necessary to satisfy ConsistencyLevel.
for (Map.Entry<Message, ReadResponse> entry : results.entrySet())
{
ReadResponse result = entry.getValue();
@@ -106,6 +110,8 @@ public class ReadResponseResolver implem
versions.add(result.row().cf);
endpoints.add(message.getFrom());
}
+
+ results.remove(message);
}
if (logger_.isDebugEnabled())