Return-Path: Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: (qmail 59738 invoked from network); 15 Oct 2010 19:56:27 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 15 Oct 2010 19:56:27 -0000 Received: (qmail 74339 invoked by uid 500); 15 Oct 2010 19:56:27 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 74308 invoked by uid 500); 15 Oct 2010 19:56:27 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 74298 invoked by uid 99); 15 Oct 2010 19:56:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Oct 2010 19:56:27 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Oct 2010 19:56:27 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 61BC823889BB; Fri, 15 Oct 2010 19:55:31 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1023089 - /cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/ReadResponseResolver.java Date: Fri, 15 Oct 2010 19:55:31 -0000 To: commits@cassandra.apache.org From: jbellis@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101015195531.61BC823889BB@eris.apache.org> Author: jbellis Date: Fri Oct 15 19:55:31 2010 New Revision: 1023089 URL: http://svn.apache.org/viewvc?rev=1023089&view=rev Log: skip clone on non-mismatch quorum read. patch by jbellis; tested by Wayne for CASSANDRA-1622 Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/ReadResponseResolver.java Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/ReadResponseResolver.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/ReadResponseResolver.java?rev=1023089&r1=1023088&r2=1023089&view=diff ============================================================================== --- cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/ReadResponseResolver.java (original) +++ cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/ReadResponseResolver.java Fri Oct 15 19:55:31 2010 @@ -68,6 +68,9 @@ public class ReadResponseResolver implem */ public Row resolve(Collection responses) throws DigestMismatchException, IOException { + if (logger_.isDebugEnabled()) + logger_.debug("resolving " + responses.size() + " responses"); + long startTime = System.currentTimeMillis(); List versions = new ArrayList(responses.size()); List endPoints = new ArrayList(responses.size()); @@ -98,7 +101,11 @@ public class ReadResponseResolver implem key = result.row().key; } } - // If there was a digest query compare it with all the data digests + + if (logger_.isDebugEnabled()) + logger_.debug("responses deserialized"); + + // If there was a digest query compare it with all the data digests // If there is a mismatch then throw an exception so that read repair can happen. if (isDigestQuery) { @@ -111,10 +118,22 @@ public class ReadResponseResolver implem throw new DigestMismatchException(s); } } + if (logger_.isDebugEnabled()) + logger_.debug("digests verified"); } - ColumnFamily resolved = resolveSuperset(versions); - maybeScheduleRepairs(resolved, table, key, versions, endPoints); + ColumnFamily resolved; + if (versions.size() > 1) + { + resolved = resolveSuperset(versions); + if (logger_.isDebugEnabled()) + logger_.debug("versions merged"); + maybeScheduleRepairs(resolved, table, key, versions, endPoints); + } + else + { + resolved = versions.get(0); + } if (logger_.isDebugEnabled()) logger_.debug("resolve: " + (System.currentTimeMillis() - startTime) + " ms.");