You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2014/08/17 19:50:49 UTC

[1/5] git commit: (Hadoop) allow ACFRW to limit nodes to local DC

Repository: cassandra
Updated Branches:
  refs/heads/trunk fe0572778 -> 4e334ab82


(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/trunk
Commit: b87741c077e74b2ae3fda3da2417dc1965c0c4ed
Parents: 115bbe4
Author: Robbie Strickland <ro...@gmail.com>
Authored: Sun Aug 17 20:40:39 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
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<TokenRange> ring = ConfigHelper.getOutputLocalDCOnly(conf)
+                                  ? client.describe_local_ring(keyspace)
+                                  : client.describe_ring(keyspace);
+            rangeMap = ArrayListMultimap.create();
 
-                List<TokenRange> 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<Token> r = new Range<Token>(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<Token> r = new Range<Token>(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);
+        }
+        catch (TException e)
+        {
+            logger.debug("Error contacting seed list" + ConfigHelper.getOutputInitialAddress(conf) + " " + e.getMessage());
+        }
+    }
 
     /** ListMultimap promises to return a List for get(K) */
     public List<InetAddress> getEndpoint(Range<Token> range)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b87741c0/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/hadoop/ConfigHelper.java b/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
index f062bfc..10cfe8e 100644
--- a/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
+++ b/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
@@ -67,6 +67,7 @@ public class ConfigHelper
     private static final String WRITE_CONSISTENCY_LEVEL = "cassandra.consistencylevel.write";
     private static final String OUTPUT_COMPRESSION_CLASS = "cassandra.output.compression.class";
     private static final String OUTPUT_COMPRESSION_CHUNK_LENGTH = "cassandra.output.compression.length";
+    private static final String OUTPUT_LOCAL_DC_ONLY = "cassandra.output.local.dc.only";
     private static final String THRIFT_FRAMED_TRANSPORT_SIZE_IN_MB = "cassandra.thrift.framed.size_mb";
 
     private static final Logger logger = LoggerFactory.getLogger(ConfigHelper.class);
@@ -513,6 +514,16 @@ public class ConfigHelper
         }
     }
 
+    public static boolean getOutputLocalDCOnly(Configuration conf)
+    {
+        return Boolean.parseBoolean(conf.get(OUTPUT_LOCAL_DC_ONLY, "false"));
+    }
+
+    public static void setOutputLocalDCOnly(Configuration conf, boolean localDCOnly)
+    {
+        conf.set(OUTPUT_LOCAL_DC_ONLY, Boolean.toString(localDCOnly));
+    }
+
     public static Cassandra.Client getClientFromInputAddressList(Configuration conf) throws IOException
     {
         return getClientFromAddressList(conf, ConfigHelper.getInputInitialAddress(conf).split(","), ConfigHelper.getInputRpcPort(conf));


[2/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1

Posted by al...@apache.org.
Merge branch 'cassandra-2.0' into cassandra-2.1

Conflicts:
	CHANGES.txt
	src/java/org/apache/cassandra/client/RingCache.java


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/35999b3c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/35999b3c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/35999b3c

Branch: refs/heads/trunk
Commit: 35999b3c835f4eb36180595593d0def7c7dae084
Parents: ff9c631 b87741c
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Sun Aug 17 20:47:58 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Sun Aug 17 20:47:58 2014 +0300

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../org/apache/cassandra/client/RingCache.java  | 58 ++++++++++----------
 .../apache/cassandra/hadoop/ConfigHelper.java   | 11 ++++
 3 files changed, 40 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/35999b3c/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 113de3e,94169c1..b8132ba
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,20 -1,7 +1,21 @@@
 -2.0.10
 +2.1.1
 + * Add max live/tombstoned cells to nodetool cfstats output (CASSANDRA-7731)
 + * Validate IPv6 wildcard addresses properly (CASSANDRA-7680)
 + * (cqlsh) Error when tracing query (CASSANDRA-7613)
 + * Avoid IOOBE when building SyntaxError message snippet (CASSANDRA-7569)
 + * SSTableExport uses correct validator to create string representation of partition
 +   keys (CASSANDRA-7498)
 + * Avoid NPEs when receiving type changes for an unknown keyspace (CASSANDRA-7689)
 + * Add support for custom 2i validation (CASSANDRA-7575)
 + * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 +Merged from 2.0:
+  * (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
     from system_traces (CASSANDRA-7641)
   * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/35999b3c/src/java/org/apache/cassandra/client/RingCache.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/client/RingCache.java
index 9b04518,cc9b1b2..c3dbda5
--- a/src/java/org/apache/cassandra/client/RingCache.java
+++ b/src/java/org/apache/cassandra/client/RingCache.java
@@@ -61,44 -61,47 +61,42 @@@ public class RingCach
  
      public void refreshEndpointMap()
      {
-             try {
+         try
+         {
+             Cassandra.Client client = ConfigHelper.getClientFromOutputAddressList(conf);
  
-                 Cassandra.Client client = ConfigHelper.getClientFromOutputAddressList(conf);
+             String keyspace = ConfigHelper.getOutputKeyspace(conf);
+             List<TokenRange> ring = ConfigHelper.getOutputLocalDCOnly(conf)
+                                   ? client.describe_local_ring(keyspace)
+                                   : client.describe_ring(keyspace);
+             rangeMap = ArrayListMultimap.create();
  
-                 List<TokenRange> 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<Token> r = new Range<Token>(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<Token> r = new Range<Token>(left, right, partitioner);
-                     for (String host : range.endpoints)
+                     try
+                     {
+                         rangeMap.put(r, InetAddress.getByName(host));
 -                    }
 -                    catch (UnknownHostException e)
++                    } 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)
++        catch (InvalidRequestException | IOException e)
+         {
+             throw new RuntimeException(e);
+         }
+         catch (TException e)
+         {
 -            logger.debug("Error contacting seed list" + ConfigHelper.getOutputInitialAddress(conf) + " " + e.getMessage());
++            logger.debug("Error contacting seed list {} {}", ConfigHelper.getOutputInitialAddress(conf), e.getMessage());
+         }
+     }
  
      /** ListMultimap promises to return a List for get(K) */
      public List<InetAddress> getEndpoint(Range<Token> range)


[5/5] git commit: Merge branch 'cassandra-2.1' into trunk

Posted by al...@apache.org.
Merge branch 'cassandra-2.1' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4e334ab8
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4e334ab8
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4e334ab8

Branch: refs/heads/trunk
Commit: 4e334ab82858972b768920dc2f752ea1f283ec2c
Parents: fe05727 7035cfc
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Sun Aug 17 20:50:42 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Sun Aug 17 20:50:42 2014 +0300

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../org/apache/cassandra/client/RingCache.java  | 58 ++++++++++----------
 .../apache/cassandra/hadoop/ConfigHelper.java   | 11 ++++
 3 files changed, 40 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4e334ab8/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4e334ab8/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
----------------------------------------------------------------------


[3/5] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

Posted by al...@apache.org.
Merge branch 'cassandra-2.0' into cassandra-2.1.0


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cb772e54
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cb772e54
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cb772e54

Branch: refs/heads/trunk
Commit: cb772e54461e79146e79d677b8721941a936f954
Parents: d087317 b87741c
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Sun Aug 17 20:49:00 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Sun Aug 17 20:49:00 2014 +0300

----------------------------------------------------------------------

----------------------------------------------------------------------



[4/5] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

Posted by al...@apache.org.
Merge branch 'cassandra-2.1.0' into cassandra-2.1


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7035cfcc
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7035cfcc
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7035cfcc

Branch: refs/heads/trunk
Commit: 7035cfccfcaf48ff64722942430ca8036e2e1e02
Parents: 35999b3 cb772e5
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Sun Aug 17 20:49:58 2014 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Sun Aug 17 20:49:58 2014 +0300

----------------------------------------------------------------------

----------------------------------------------------------------------