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 2014/02/18 18:22:53 UTC

[7/8] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1

Merge branch 'cassandra-2.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/f628bd8a
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f628bd8a
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f628bd8a

Branch: refs/heads/cassandra-2.1
Commit: f628bd8a4d705c79883da2bb400b08a460fdcc01
Parents: 5f82aa3 500c62d
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Feb 18 11:21:29 2014 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Feb 18 11:22:24 2014 -0600

----------------------------------------------------------------------
 CHANGES.txt                                     |   1 +
 build.xml                                       |   2 +
 conf/cassandra.yaml                             |   3 +
 lib/licenses/super-csv-2.1.0.txt                | 202 +++++++++++++++++++
 lib/super-csv-2.1.0.jar                         | Bin 0 -> 91473 bytes
 .../org/apache/cassandra/config/Config.java     |  49 ++++-
 .../cassandra/config/DatabaseDescriptor.java    |  40 +++-
 .../config/YamlConfigurationLoader.java         |   1 +
 .../apache/cassandra/service/StorageProxy.java  |  22 +-
 .../cassandra/service/StorageProxyMBean.java    |   3 +
 .../org/apache/cassandra/tools/NodeProbe.java   |   5 +
 .../org/apache/cassandra/tools/NodeTool.java    |   9 +-
 12 files changed, 332 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f628bd8a/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index ea74c62,f0c116f..ee98f5d
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,42 -1,5 +1,43 @@@
 +2.1.0-beta1
 + * Add flush directory distinct from compaction directories (CASSANDRA-6357)
 + * Require JNA by default (CASSANDRA-6575)
 + * add listsnapshots command to nodetool (CASSANDRA-5742)
 + * Introduce AtomicBTreeColumns (CASSANDRA-6271, 6692)
 + * Multithreaded commitlog (CASSANDRA-3578)
 + * allocate fixed index summary memory pool and resample cold index summaries 
 +   to use less memory (CASSANDRA-5519)
 + * Removed multithreaded compaction (CASSANDRA-6142)
 + * Parallelize fetching rows for low-cardinality indexes (CASSANDRA-1337)
 + * change logging from log4j to logback (CASSANDRA-5883)
 + * switch to LZ4 compression for internode communication (CASSANDRA-5887)
 + * Stop using Thrift-generated Index* classes internally (CASSANDRA-5971)
 + * Remove 1.2 network compatibility code (CASSANDRA-5960)
 + * Remove leveled json manifest migration code (CASSANDRA-5996)
 + * Remove CFDefinition (CASSANDRA-6253)
 + * Use AtomicIntegerFieldUpdater in RefCountedMemory (CASSANDRA-6278)
 + * User-defined types for CQL3 (CASSANDRA-5590)
 + * Use of o.a.c.metrics in nodetool (CASSANDRA-5871, 6406)
 + * Batch read from OTC's queue and cleanup (CASSANDRA-1632)
 + * Secondary index support for collections (CASSANDRA-4511, 6383)
 + * SSTable metadata(Stats.db) format change (CASSANDRA-6356)
 + * Push composites support in the storage engine
 +   (CASSANDRA-5417, CASSANDRA-6520)
 + * Add snapshot space used to cfstats (CASSANDRA-6231)
 + * Add cardinality estimator for key count estimation (CASSANDRA-5906)
 + * CF id is changed to be non-deterministic. Data dir/key cache are created
 +   uniquely for CF id (CASSANDRA-5202)
 + * New counters implementation (CASSANDRA-6504)
 + * Replace UnsortedColumns, EmptyColumns, TreeMapBackedSortedColumns with new
 +   ArrayBackedSortedColumns (CASSANDRA-6630, CASSANDRA-6662, CASSANDRA-6690)
 + * Add option to use row cache with a given amount of rows (CASSANDRA-5357)
 + * Avoid repairing already repaired data (CASSANDRA-5351)
 + * Reject counter updates with USING TTL/TIMESTAMP (CASSANDRA-6649)
 + * Replace index_interval with min/max_index_interval (CASSANDRA-6379)
 + * Lift limitation that order by columns must be selected for IN queries (CASSANDRA-4911)
 +
 +
  2.0.6
+  * Allow per-dc enabling of hints (CASSANDRA-6157)
   * Add compatibility for Hadoop 0.2.x (CASSANDRA-5201)
   * Fix EstimatedHistogram races (CASSANDRA-6682)
   * Failure detector correctly converts initial value to nanos (CASSANDRA-6658)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f628bd8a/build.xml
----------------------------------------------------------------------
diff --cc build.xml
index 1a8de44,77b2639..7afe3bf
--- a/build.xml
+++ b/build.xml
@@@ -384,11 -378,10 +384,12 @@@
            <dependency groupId="org.apache.cassandra" artifactId="cassandra-thrift" version="${version}" />
            <dependency groupId="com.yammer.metrics" artifactId="metrics-core" version="2.2.0" />
            <dependency groupId="com.addthis.metrics" artifactId="reporter-config" version="2.1.0" />
 -          <dependency groupId="edu.stanford.ppl" artifactId="snaptree" version="0.1" />
            <dependency groupId="org.mindrot" artifactId="jbcrypt" version="0.3m" />
 +          <dependency groupId="io.airlift" artifactId="airline" version="0.6" />
            <dependency groupId="io.netty" artifactId="netty" version="3.6.6.Final" />
 +          <dependency groupId="com.google.code.findbugs" artifactId="jsr305" version="2.0.2" />
 +          <dependency groupId="com.clearspring.analytics" artifactId="stream" version="2.5.2" />
+           <dependency groupId="net.sf.supercsv" artifactId="super-csv" version="2.1.0" />
          </dependencyManagement>
          <developer id="alakshman" name="Avinash Lakshman"/>
          <developer id="antelder" name="Anthony Elder"/>
@@@ -472,10 -462,11 +473,11 @@@
          <dependency groupId="com.yammer.metrics" artifactId="metrics-core"/>
          <dependency groupId="com.addthis.metrics" artifactId="reporter-config"/>
          <dependency groupId="com.thinkaurelius.thrift" artifactId="thrift-server" version="0.3.3"/>
 +        <dependency groupId="com.clearspring.analytics" artifactId="stream" version="2.5.2" />
+         <dependency groupId="net.sf.supercsv" artifactId="super-csv" version="2.1.0" />
  
 -        <dependency groupId="log4j" artifactId="log4j"/>
 -        <!-- cassandra has a hard dependency on log4j, so force slf4j's log4j provider at runtime -->
 -        <dependency groupId="org.slf4j" artifactId="slf4j-log4j12" scope="runtime"/>
 +        <dependency groupId="ch.qos.logback" artifactId="logback-core"/>
 +        <dependency groupId="ch.qos.logback" artifactId="logback-classic"/>
  
          <dependency groupId="org.apache.thrift" artifactId="libthrift"/>
          <dependency groupId="org.apache.cassandra" artifactId="cassandra-thrift"/>

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f628bd8a/conf/cassandra.yaml
----------------------------------------------------------------------
diff --cc conf/cassandra.yaml
index 2666316,4c9ad67..41bc038
--- a/conf/cassandra.yaml
+++ b/conf/cassandra.yaml
@@@ -29,7 -29,10 +29,10 @@@ num_tokens: 25
  # that do not have vnodes enabled.
  # initial_token:
  
 +# See http://wiki.apache.org/cassandra/HintedHandoff
+ # May either be "true" or "false" to enable globally, or contain a list
+ # of data centers to enable per-datacenter.
+ # hinted_handoff_enabled: DC1,DC2
 -# See http://wiki.apache.org/cassandra/HintedHandoff
  hinted_handoff_enabled: true
  # this defines the maximum amount of time a dead host will have hints
  # generated.  After it has been dead this long, new hints for it will not be

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f628bd8a/src/java/org/apache/cassandra/config/Config.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/config/Config.java
index d5108e3,ceb8df0..ee55c92
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@@ -199,9 -197,9 +211,12 @@@ public class Confi
      public volatile int tombstone_warn_threshold = 1000;
      public volatile int tombstone_failure_threshold = 100000;
  
 +    public volatile Long index_summary_capacity_in_mb;
 +    public volatile int index_summary_resize_interval_in_minutes = 60;
 +
+     private static final CsvPreference STANDARD_SURROUNDING_SPACES_NEED_QUOTES = new CsvPreference.Builder(CsvPreference.STANDARD_PREFERENCE)
+                                                                                                   .surroundingSpacesNeedQuotes(true).build();
+ 
      public static boolean getOutboundBindAny()
      {
          return outboundBindAny;

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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f628bd8a/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/config/YamlConfigurationLoader.java
index aefc431,6b5a152..4a1280c
--- a/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java
+++ b/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java
@@@ -98,7 -90,8 +98,8 @@@ public class YamlConfigurationLoader im
              MissingPropertiesChecker propertiesChecker = new MissingPropertiesChecker();
              constructor.setPropertyUtils(propertiesChecker);
              Yaml yaml = new Yaml(constructor);
 -            Config result = yaml.loadAs(input, Config.class);
 +            Config result = yaml.loadAs(new ByteArrayInputStream(configBytes), Config.class);
+             result.configHintedHandoff();
              propertiesChecker.check();
              return result;
          }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f628bd8a/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/StorageProxy.java
index 05fdd61,14c1ce3..5a51838
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@@ -1860,7 -1785,17 +1870,17 @@@ public class StorageProxy implements St
  
      public static boolean shouldHint(InetAddress ep)
      {
-         if (!DatabaseDescriptor.hintedHandoffEnabled())
+         if (DatabaseDescriptor.shouldHintByDC())
+         {
+             final String dc = DatabaseDescriptor.getEndpointSnitch().getDatacenter(ep);
 -            // Disable DC specific hints
++            //Disable DC specific hints
+             if(!DatabaseDescriptor.hintedHandoffEnabled(dc))
+             {
+                 HintedHandOffManager.instance.metrics.incrPastWindow(ep);
+                 return false;
+             }
+         }
+         else if (!DatabaseDescriptor.hintedHandoffEnabled())
          {
              HintedHandOffManager.instance.metrics.incrPastWindow(ep);
              return false;

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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f628bd8a/src/java/org/apache/cassandra/tools/NodeProbe.java
----------------------------------------------------------------------