Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7A60CE5DE for ; Fri, 18 Jan 2013 14:19:13 +0000 (UTC) Received: (qmail 10595 invoked by uid 500); 18 Jan 2013 14:19:13 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 10573 invoked by uid 500); 18 Jan 2013 14:19:13 -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 10548 invoked by uid 99); 18 Jan 2013 14:19:12 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Jan 2013 14:19:12 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id F2E4081F036; Fri, 18 Jan 2013 14:19:11 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: slebresne@apache.org To: commits@cassandra.apache.org X-Mailer: ASF-Git Admin Mailer Subject: git commit: Fix range merging to avoid creating wrapping ones Message-Id: <20130118141911.F2E4081F036@tyr.zones.apache.org> Date: Fri, 18 Jan 2013 14:19:11 +0000 (UTC) Updated Branches: refs/heads/cassandra-1.2 971700249 -> 19972bdd9 Fix range merging to avoid creating wrapping ones Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/19972bdd Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/19972bdd Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/19972bdd Branch: refs/heads/cassandra-1.2 Commit: 19972bdd91d6f8117eb8baa957b547000e995de3 Parents: 9717002 Author: Sylvain Lebresne Authored: Fri Jan 18 15:19:04 2013 +0100 Committer: Sylvain Lebresne Committed: Fri Jan 18 15:19:04 2013 +0100 ---------------------------------------------------------------------- .../org/apache/cassandra/service/StorageProxy.java | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/19972bdd/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 b541332..c234bd1 100644 --- a/src/java/org/apache/cassandra/service/StorageProxy.java +++ b/src/java/org/apache/cassandra/service/StorageProxy.java @@ -1146,6 +1146,16 @@ public class StorageProxy implements StorageProxyMBean nextEndpoints = getLiveSortedEndpoints(table, nextRange.right); nextFilteredEndpoints = consistency_level.filterForQuery(table, nextEndpoints); + /* + * If the current range right is the min token, we should stop merging because CFS.getRangeSlice + * don't know how to deal with a wrapping range. + * Note: it would be slightly more efficient to have CFS.getRangeSlice on the destination nodes unwraps + * the range if necessary and deal with it. However, we can't start sending wrapped range without breaking + * wire compatibility, so It's likely easier not to bother; + */ + if (range.right.isMinimum()) + break; + List merged = intersection(liveEndpoints, nextEndpoints); // Check if there is enough endpoint for the merge to be possible.