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())