[1/2] git commit: (Hadoop) allow ACFRW to limit nodes to local DC
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1.0 d087317fd -> cb772e544 (Hadoop) allow ACFRW to limit nodes to local DC patch by Robbie Strickland; reviewed by Aleksey Yeschenko for CASSANDRA-7252 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b87741c0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b87741c0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b87741c0 Branch: refs/heads/cassandra-2.1.0 Commit: b87741c077e74b2ae3fda3da2417dc1965c0c4ed Parents: 115bbe4 Author: Robbie Strickland Authored: Sun Aug 17 20:40:39 2014 +0300 Committer: Aleksey Yeschenko Committed: Sun Aug 17 20:40:39 2014 +0300 -- CHANGES.txt | 1 + .../org/apache/cassandra/client/RingCache.java | 63 ++-- .../apache/cassandra/hadoop/ConfigHelper.java | 11 3 files changed, 45 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b87741c0/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 987c227..94169c1 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.10 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252) * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222) * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756) * (cqlsh) cqlsh should automatically disable tracing when selecting http://git-wip-us.apache.org/repos/asf/cassandra/blob/b87741c0/src/java/org/apache/cassandra/client/RingCache.java -- diff --git a/src/java/org/apache/cassandra/client/RingCache.java b/src/java/org/apache/cassandra/client/RingCache.java index 3308471..cc9b1b2 100644 --- a/src/java/org/apache/cassandra/client/RingCache.java +++ b/src/java/org/apache/cassandra/client/RingCache.java @@ -61,44 +61,47 @@ public class RingCache public void refreshEndpointMap() { -try { +try +{ +Cassandra.Client client = ConfigHelper.getClientFromOutputAddressList(conf); -Cassandra.Client client = ConfigHelper.getClientFromOutputAddressList(conf); +String keyspace = ConfigHelper.getOutputKeyspace(conf); +List ring = ConfigHelper.getOutputLocalDCOnly(conf) + ? client.describe_local_ring(keyspace) + : client.describe_ring(keyspace); +rangeMap = ArrayListMultimap.create(); -List ring = client.describe_ring(ConfigHelper.getOutputKeyspace(conf)); -rangeMap = ArrayListMultimap.create(); - -for (TokenRange range : ring) +for (TokenRange range : ring) +{ +Token left = partitioner.getTokenFactory().fromString(range.start_token); +Token right = partitioner.getTokenFactory().fromString(range.end_token); +Range r = new Range(left, right, partitioner); +for (String host : range.endpoints) { -Token left = partitioner.getTokenFactory().fromString(range.start_token); -Token right = partitioner.getTokenFactory().fromString(range.end_token); -Range r = new Range(left, right, partitioner); -for (String host : range.endpoints) +try +{ +rangeMap.put(r, InetAddress.getByName(host)); +} +catch (UnknownHostException e) { -try -{ -rangeMap.put(r, InetAddress.getByName(host)); -} -catch (UnknownHostException e) -{ -throw new AssertionError(e); // host strings are IPs -} +throw new AssertionError(e); // host strings are IPs } } } -catch (InvalidRequestException e) -{ -throw new RuntimeException(e); -} -catch (IOException e) -{ -throw new RuntimeException(e); -} -catch (TException e) -{ -logger.debug("Error contacting seed list" + ConfigHelper.getOutputInitialAddress(conf) + " " + e.getMessage()); -} } +catch (InvalidRequestException e) +{ +throw new RuntimeException(e); +} +catch (IOException e) +{ +throw new RuntimeException
[1/2] git commit: (Hadoop) allow ACFRW to limit nodes to local DC
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 ff9c63163 -> 35999b3c8 (Hadoop) allow ACFRW to limit nodes to local DC patch by Robbie Strickland; reviewed by Aleksey Yeschenko for CASSANDRA-7252 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b87741c0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b87741c0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b87741c0 Branch: refs/heads/cassandra-2.1 Commit: b87741c077e74b2ae3fda3da2417dc1965c0c4ed Parents: 115bbe4 Author: Robbie Strickland Authored: Sun Aug 17 20:40:39 2014 +0300 Committer: Aleksey Yeschenko Committed: Sun Aug 17 20:40:39 2014 +0300 -- CHANGES.txt | 1 + .../org/apache/cassandra/client/RingCache.java | 63 ++-- .../apache/cassandra/hadoop/ConfigHelper.java | 11 3 files changed, 45 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b87741c0/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 987c227..94169c1 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.10 + * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252) * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222) * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756) * (cqlsh) cqlsh should automatically disable tracing when selecting http://git-wip-us.apache.org/repos/asf/cassandra/blob/b87741c0/src/java/org/apache/cassandra/client/RingCache.java -- diff --git a/src/java/org/apache/cassandra/client/RingCache.java b/src/java/org/apache/cassandra/client/RingCache.java index 3308471..cc9b1b2 100644 --- a/src/java/org/apache/cassandra/client/RingCache.java +++ b/src/java/org/apache/cassandra/client/RingCache.java @@ -61,44 +61,47 @@ public class RingCache public void refreshEndpointMap() { -try { +try +{ +Cassandra.Client client = ConfigHelper.getClientFromOutputAddressList(conf); -Cassandra.Client client = ConfigHelper.getClientFromOutputAddressList(conf); +String keyspace = ConfigHelper.getOutputKeyspace(conf); +List ring = ConfigHelper.getOutputLocalDCOnly(conf) + ? client.describe_local_ring(keyspace) + : client.describe_ring(keyspace); +rangeMap = ArrayListMultimap.create(); -List ring = client.describe_ring(ConfigHelper.getOutputKeyspace(conf)); -rangeMap = ArrayListMultimap.create(); - -for (TokenRange range : ring) +for (TokenRange range : ring) +{ +Token left = partitioner.getTokenFactory().fromString(range.start_token); +Token right = partitioner.getTokenFactory().fromString(range.end_token); +Range r = new Range(left, right, partitioner); +for (String host : range.endpoints) { -Token left = partitioner.getTokenFactory().fromString(range.start_token); -Token right = partitioner.getTokenFactory().fromString(range.end_token); -Range r = new Range(left, right, partitioner); -for (String host : range.endpoints) +try +{ +rangeMap.put(r, InetAddress.getByName(host)); +} +catch (UnknownHostException e) { -try -{ -rangeMap.put(r, InetAddress.getByName(host)); -} -catch (UnknownHostException e) -{ -throw new AssertionError(e); // host strings are IPs -} +throw new AssertionError(e); // host strings are IPs } } } -catch (InvalidRequestException e) -{ -throw new RuntimeException(e); -} -catch (IOException e) -{ -throw new RuntimeException(e); -} -catch (TException e) -{ -logger.debug("Error contacting seed list" + ConfigHelper.getOutputInitialAddress(conf) + " " + e.getMessage()); -} } +catch (InvalidRequestException e) +{ +throw new RuntimeException(e); +} +catch (IOException e) +{ +throw new RuntimeException(e);