You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2016/01/07 12:04:48 UTC

[08/15] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Merge branch 'cassandra-2.1' into cassandra-2.2


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

Branch: refs/heads/cassandra-3.0
Commit: e41fa3419195a1b512efa478135d82d3295de5cd
Parents: 202cf9b 6d6d189
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Jan 7 12:03:26 2016 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Jan 7 12:03:26 2016 +0100

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 NEWS.txt                                        |  7 ++++
 conf/cassandra.yaml                             |  3 +-
 .../org/apache/cassandra/config/Config.java     |  2 +-
 .../cassandra/service/StorageService.java       | 12 +++++++
 .../cassandra/service/StorageServiceMBean.java  |  3 ++
 .../org/apache/cassandra/tools/BulkLoader.java  | 12 ++++++-
 .../org/apache/cassandra/tools/NodeProbe.java   | 15 +++++++-
 .../org/apache/cassandra/tools/NodeTool.java    |  2 ++
 .../nodetool/GetInterDCStreamThroughput.java    | 33 +++++++++++++++++
 .../nodetool/SetInterDCStreamThroughput.java    | 37 ++++++++++++++++++++
 11 files changed, 123 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index b12f593,14c5ee6..90d990e
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,20 -1,8 +1,21 @@@
 -2.1.13
 +2.2.5
 + * Enable GC logging by default (CASSANDRA-10140)
 + * Optimize pending range computation (CASSANDRA-9258)
 + * Skip commit log and saved cache directories in SSTable version startup check (CASSANDRA-10902)
 + * drop/alter user should be case sensitive (CASSANDRA-10817)
 + * jemalloc detection fails due to quoting issues in regexv (CASSANDRA-10946)
 + * Support counter-columns for native aggregates (sum,avg,max,min) (CASSANDRA-9977)
 + * (cqlsh) show correct column names for empty result sets (CASSANDRA-9813)
 + * Add new types to Stress (CASSANDRA-9556)
 + * Add property to allow listening on broadcast interface (CASSANDRA-9748)
 + * Fix regression in split size on CqlInputFormat (CASSANDRA-10835)
 + * Better handling of SSL connection errors inter-node (CASSANDRA-10816)
 + * Disable reloading of GossipingPropertyFileSnitch (CASSANDRA-9474)
 + * Verify tables in pseudo-system keyspaces at startup (CASSANDRA-10761)
 +Merged from 2.1:
+  * Sane default (200Mbps) for inter-DC streaming througput (CASSANDRA-9708)
   * Match cassandra-loader options in COPY FROM (CASSANDRA-9303)
   * Fix binding to any address in CqlBulkRecordWriter (CASSANDRA-9309)
 - * Fix the way we replace sstables after anticompaction (CASSANDRA-10831)
   * cqlsh fails to decode utf-8 characters for text typed columns (CASSANDRA-10875)
   * Log error when stream session fails (CASSANDRA-9294)
   * Fix bugs in commit log archiving startup behavior (CASSANDRA-10593)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/NEWS.txt
----------------------------------------------------------------------
diff --cc NEWS.txt
index 8cbe4f7,845801d..f26fe3b
--- a/NEWS.txt
+++ b/NEWS.txt
@@@ -13,29 -13,23 +13,36 @@@ restore snapshots created with the prev
  'sstableloader' tool. You can upgrade the file format of your snapshots
  using the provided 'sstableupgrade' tool.
  
 -2.1.13
 -======
 +2.2.4
 +=====
  
 -New features
 -------------
 -    - New options for cqlsh COPY FROM and COPY TO, see CASSANDRA-9303 for details.
 +Deprecation
 +-----------
 +    - Pig support has been deprecated, and will be removed in 3.0.
 +      Please see CASSANDRA-10542 for more details.
 +    - Configuration parameter memory_allocator in cassandra.yaml has been deprecated
 +      and will be removed in 3.0.0. As mentioned below for 2.2.0, jemalloc is
 +      automatically preloaded on Unix platforms.
 +
 +Operations
 +----------
 +    - Switching data center or racks is no longer an allowed operation on a node
 +      which has data. Instead, the node will need to be decommissioned and
 +      rebootstrapped. If moving from the SimpleSnitch, make sure that the data
 +      center and rack containing all current nodes is named "datacenter1" and
 +      "rack1". To override this behaviour use -Dcassandra.ignore_rack=true and/or
 +      -Dcassandra.ignore_dc=true.
 +    - Reloading the configuration file of GossipingPropertyFileSnitch has been disabled.
 +    - GC logging is now enabled by default (but you can disable it if you want by
 +      commenting the relevant lines of the cassandra-env file).
  
+ Upgrading
+ ---------
+     - The default for the inter-DC stream throughput setting
+       (inter_dc_stream_throughput_outbound_megabits_per_sec in cassandra.yaml) is
+       the same than the one for intra-DC one (200Mbps) instead of being unlimited.
+       Having it unlimited was never intended and was a bug.
+ 
 -2.1.12
 -======
 -
  New features
  ------------
      - Time windows in DTCS are now limited to 1 day by default to be able to

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/conf/cassandra.yaml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/src/java/org/apache/cassandra/config/Config.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/src/java/org/apache/cassandra/service/StorageServiceMBean.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageServiceMBean.java
index b7784d6,8fa2433..7c5cd0a
--- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java
+++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
@@@ -482,8 -470,14 +482,11 @@@ public interface StorageServiceMBean ex
      public void joinRing() throws IOException;
      public boolean isJoined();
  
 -    @Deprecated
 -    public int getExceptionCount();
 -
      public void setStreamThroughputMbPerSec(int value);
      public int getStreamThroughputMbPerSec();
+ 
+     public void setInterDCStreamThroughputMbPerSec(int value);
+     public int getInterDCStreamThroughputMbPerSec();
  
      public int getCompactionThroughputMbPerSec();
      public void setCompactionThroughputMbPerSec(int value);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/src/java/org/apache/cassandra/tools/BulkLoader.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/tools/BulkLoader.java
index 73194a1,37317d5..8a85c54
--- a/src/java/org/apache/cassandra/tools/BulkLoader.java
+++ b/src/java/org/apache/cassandra/tools/BulkLoader.java
@@@ -51,7 -59,10 +51,8 @@@ public class BulkLoade
      private static final String USER_OPTION = "username";
      private static final String PASSWD_OPTION = "password";
      private static final String THROTTLE_MBITS = "throttle";
+     private static final String INTER_DC_THROTTLE_MBITS = "inter-dc-throttle";
  
 -    private static final String TRANSPORT_FACTORY = "transport-factory";
 -
      /* client encryption options */
      private static final String SSL_TRUSTSTORE = "truststore";
      private static final String SSL_TRUSTSTORE_PW = "truststore-password";
@@@ -308,8 -403,10 +310,9 @@@
          public String user;
          public String passwd;
          public int throttle = 0;
+         public int interDcThrottle = 0;
          public int storagePort;
          public int sslStoragePort;
 -        public ITransportFactory transportFactory = new TFramedTransportFactory();
          public EncryptionOptions encOptions = new EncryptionOptions.ClientEncryptionOptions();
          public int connectionsPerHost = 1;
          public EncryptionOptions.ServerEncryptionOptions serverEncOptions = new EncryptionOptions.ServerEncryptionOptions();
@@@ -509,10 -663,12 +518,11 @@@
              options.addOption(null, NOPROGRESS_OPTION,   "don't display progress");
              options.addOption("i",  IGNORE_NODES_OPTION, "NODES", "don't stream to this (comma separated) list of nodes");
              options.addOption("d",  INITIAL_HOST_ADDRESS_OPTION, "initial hosts", "Required. try to connect to these hosts (comma separated) initially for ring information");
 -            options.addOption("p",  RPC_PORT_OPTION, "rpc port", "port used for rpc (default 9160)");
 +            options.addOption("p",  NATIVE_PORT_OPTION, "rpc port", "port used for native connection (default 9042)");
              options.addOption("t",  THROTTLE_MBITS, "throttle", "throttle speed in Mbits (default unlimited)");
+             options.addOption("idct",  INTER_DC_THROTTLE_MBITS, "inter-dc-throttle", "inter-datacenter throttle speed in Mbits (default unlimited)");
              options.addOption("u",  USER_OPTION, "username", "username for cassandra authentication");
              options.addOption("pw", PASSWD_OPTION, "password", "password for cassandra authentication");
 -            options.addOption("tf", TRANSPORT_FACTORY, "transport factory", "Fully-qualified ITransportFactory class name for creating a connection to cassandra");
              options.addOption("cph", CONNECTIONS_PER_HOST, "connectionsPerHost", "number of concurrent connections-per-host.");
              // ssl connection-related options
              options.addOption("ts", SSL_TRUSTSTORE, "TRUSTSTORE", "Client SSL: full path to truststore");

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/src/java/org/apache/cassandra/tools/NodeProbe.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/tools/NodeProbe.java
index dbc0357,1ad1147..93804a8
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@@ -941,11 -983,14 +941,19 @@@ public class NodeProbe implements AutoC
          return ssProxy.getStreamThroughputMbPerSec();
      }
  
-     public double getTraceProbability() {return ssProxy.getTraceProbability();}
+     public int getInterDCStreamThroughput()
+     {
+         return ssProxy.getInterDCStreamThroughputMbPerSec();
+     }
+ 
++    public double getTraceProbability()
++    {
++        return ssProxy.getTraceProbability();
++    }
 +
      public int getExceptionCount()
      {
 -        return ssProxy.getExceptionCount();
 +        return (int)StorageMetrics.exceptions.getCount();
      }
  
      public Map<String, Integer> getDroppedMessages()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/src/java/org/apache/cassandra/tools/NodeTool.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/tools/NodeTool.java
index fcb6ed0,819049e..966b785
--- a/src/java/org/apache/cassandra/tools/NodeTool.java
+++ b/src/java/org/apache/cassandra/tools/NodeTool.java
@@@ -80,7 -138,7 +80,8 @@@ public class NodeToo
                  GetCompactionThreshold.class,
                  GetCompactionThroughput.class,
                  GetStreamThroughput.class,
 +                GetTraceProbability.class,
+                 GetInterDCStreamThroughput.class,
                  GetEndpoints.class,
                  GetSSTables.class,
                  GossipInfo.class,

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/src/java/org/apache/cassandra/tools/nodetool/GetInterDCStreamThroughput.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/tools/nodetool/GetInterDCStreamThroughput.java
index 0000000,0000000..4c354c0
new file mode 100644
--- /dev/null
+++ b/src/java/org/apache/cassandra/tools/nodetool/GetInterDCStreamThroughput.java
@@@ -1,0 -1,0 +1,33 @@@
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements.  See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership.  The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License.  You may obtain a copy of the License at
++ *
++ *     http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++package org.apache.cassandra.tools.nodetool;
++
++import io.airlift.command.Command;
++
++import org.apache.cassandra.tools.NodeProbe;
++import org.apache.cassandra.tools.NodeTool.NodeToolCmd;
++
++@Command(name = "getinterdcstreamthroughput", description = "Print the Mb/s throughput cap for inter-datacenter streaming in the system")
++public class GetInterDCStreamThroughput extends NodeToolCmd
++{
++    @Override
++    public void execute(NodeProbe probe)
++    {
++        System.out.println("Current inter-datacenter stream throughput: " + probe.getInterDCStreamThroughput() + " Mb/s");
++    }
++}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e41fa341/src/java/org/apache/cassandra/tools/nodetool/SetInterDCStreamThroughput.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/tools/nodetool/SetInterDCStreamThroughput.java
index 0000000,0000000..41ce43a
new file mode 100644
--- /dev/null
+++ b/src/java/org/apache/cassandra/tools/nodetool/SetInterDCStreamThroughput.java
@@@ -1,0 -1,0 +1,37 @@@
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements.  See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership.  The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License"); you may not use this file except in compliance
++ * with the License.  You may obtain a copy of the License at
++ *
++ *     http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++package org.apache.cassandra.tools.nodetool;
++
++import io.airlift.command.Arguments;
++import io.airlift.command.Command;
++
++import org.apache.cassandra.tools.NodeProbe;
++import org.apache.cassandra.tools.NodeTool.NodeToolCmd;
++
++@Command(name = "setinterdcstreamthroughput", description = "Set the Mb/s throughput cap for inter-datacenter streaming in the system, or 0 to disable throttling")
++public class SetInterDCStreamThroughput extends NodeToolCmd
++{
++    @Arguments(title = "inter_dc_stream_throughput", usage = "<value_in_mb>", description = "Value in Mb, 0 to disable throttling", required = true)
++    private Integer interDCStreamThroughput = null;
++
++    @Override
++    public void execute(NodeProbe probe)
++    {
++        probe.setInterDCStreamThroughput(interDCStreamThroughput);
++    }
++}