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 2013/09/24 17:14:19 UTC
git commit: Avoid sending Truncate command to fat clients patch by
Oleg Anastasyev; reviewed by jbellis for CASSANDRA-6088
Updated Branches:
refs/heads/cassandra-1.2 3a4d10ff6 -> bb3ec4ce9
Avoid sending Truncate command to fat clients
patch by Oleg Anastasyev; reviewed by jbellis for CASSANDRA-6088
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bb3ec4ce
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bb3ec4ce
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bb3ec4ce
Branch: refs/heads/cassandra-1.2
Commit: bb3ec4ce9ec020d0bf7963517f802c2b86e9047a
Parents: 3a4d10f
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Sep 24 10:12:20 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Sep 24 10:12:20 2013 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
src/java/org/apache/cassandra/gms/Gossiper.java | 20 ++++++++++++++++----
.../apache/cassandra/service/StorageProxy.java | 4 ++--
3 files changed, 19 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/bb3ec4ce/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index cecb88a..ae2ab5e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
1.2.11
+ * Avoid sending Truncate command to fat clients (CASSANDRA-6088)
* Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)
* Allow where clause conditions to be in parenthesis (CASSANDRA-6037)
* Do not open non-ssl storage port if encryption option is all (CASSANDRA-3916)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/bb3ec4ce/src/java/org/apache/cassandra/gms/Gossiper.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java
index b4ea88a..acf40f3 100644
--- a/src/java/org/apache/cassandra/gms/Gossiper.java
+++ b/src/java/org/apache/cassandra/gms/Gossiper.java
@@ -218,10 +218,22 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean
public Set<InetAddress> getLiveMembers()
{
- Set<InetAddress> liveMbrs = new HashSet<InetAddress>(liveEndpoints);
- if (!liveMbrs.contains(FBUtilities.getBroadcastAddress()))
- liveMbrs.add(FBUtilities.getBroadcastAddress());
- return liveMbrs;
+ Set<InetAddress> liveMembers = new HashSet<InetAddress>(liveEndpoints);
+ if (!liveMembers.contains(FBUtilities.getBroadcastAddress()))
+ liveMembers.add(FBUtilities.getBroadcastAddress());
+ return liveMembers;
+ }
+
+ public Set<InetAddress> getLiveTokenOwners()
+ {
+ Set<InetAddress> tokenOwners = new HashSet<InetAddress>();
+ for (InetAddress member : getLiveMembers())
+ {
+ EndpointState epState = endpointStateMap.get(member);
+ if (epState != null && !isDeadState(epState) && StorageService.instance.getTokenMetadata().isMember(member))
+ tokenOwners.add(member);
+ }
+ return tokenOwners;
}
public Set<InetAddress> getUnreachableMembers()
http://git-wip-us.apache.org/repos/asf/cassandra/blob/bb3ec4ce/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 be92213..8a6e52e 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -25,7 +25,6 @@ import java.nio.ByteBuffer;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
import javax.management.MBeanServer;
import javax.management.ObjectName;
@@ -1551,7 +1550,8 @@ public class StorageProxy implements StorageProxyMBean
throw new UnavailableException(ConsistencyLevel.ALL, liveMembers + Gossiper.instance.getUnreachableMembers().size(), liveMembers);
}
- Set<InetAddress> allEndpoints = Gossiper.instance.getLiveMembers();
+ Set<InetAddress> allEndpoints = Gossiper.instance.getLiveTokenOwners();
+
int blockFor = allEndpoints.size();
final TruncateResponseHandler responseHandler = new TruncateResponseHandler(blockFor);