Merge branch 'cassandra-2.0' into cassandra-2.1

Conflicts:
        CHANGES.txt
        src/java/org/apache/cassandra/service/CassandraDaemon.java


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

Branch: refs/heads/trunk
Commit: 35b21513697f584ce45dbe99e62b098fc3db957e
Parents: 815892e 850cd59
Author: Marcus Eriksson <[email protected]>
Authored: Tue Mar 18 08:08:00 2014 +0100
Committer: Marcus Eriksson <[email protected]>
Committed: Tue Mar 18 08:09:02 2014 +0100

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 conf/cassandra.yaml                             |  1 +
 .../org/apache/cassandra/config/Config.java     |  1 +
 .../org/apache/cassandra/io/util/FileUtils.java | 27 ++++++++------------
 .../cassandra/service/CassandraDaemon.java      |  9 +++++++
 .../cassandra/service/StorageService.java       | 19 ++++++++++++++
 6 files changed, 41 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/35b21513/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index f6295ae,86d4e6f..04e16a0
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -39,6 -14,8 +39,7 @@@ Merged from 2.0
   * Correctly compare BooleanType values other than 0 and 1 (CASSANDRA-6779)
   * Read message id as string from earlier versions (CASSANDRA-6840)
   * Properly use the Paxos consistency for (non-protocol) batch 
(CASSANDRA-6837)
+  * Add paranoid disk failure option (CASSANDRA-6646)
 -Merged from 1.2:
   * add extra SSL cipher suites (CASSANDRA-6613)
   * fix nodetool getsstables for blob PK (CASSANDRA-6803)
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/35b21513/conf/cassandra.yaml
----------------------------------------------------------------------
diff --cc conf/cassandra.yaml
index 0193875,d3c91ef..fc525e4
--- a/conf/cassandra.yaml
+++ b/conf/cassandra.yaml
@@@ -107,16 -107,11 +107,17 @@@ partitioner: org.apache.cassandra.dht.M
  data_file_directories:
      - /var/lib/cassandra/data
  
 -# commit log
 +# commit log.  when running on magnetic HDD, this should be a
 +# separate spindle than the data directories.
  commitlog_directory: /var/lib/cassandra/commitlog
  
 +# location to write flushing sstables to.  Ideally, this will also be
 +# a separate spindle in HDD deployments.  If you only have two spindles,
 +# have it share with the data spindle.
 +flush_directory: /var/lib/cassandra/flush
 +
  # policy for data disk failures:
+ # stop_paranoid: shut down gossip and Thrift even for single-sstable errors.
  # stop: shut down gossip and Thrift, leaving the node effectively dead, but
  #       can still be inspected via JMX.
  # best_effort: stop using the failed disk and respond to requests based on

http://git-wip-us.apache.org/repos/asf/cassandra/blob/35b21513/src/java/org/apache/cassandra/config/Config.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/config/Config.java
index c5d35a3,5317fb8..2ce22f3
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@@ -292,8 -275,16 +292,9 @@@ public class Confi
          best_effort,
          stop,
          ignore,
+         stop_paranoid,
      }
  
 -    public static enum CommitFailurePolicy
 -    {
 -        stop,
 -        stop_commit,
 -        ignore,
 -    }
 -
      public static enum RequestSchedulerId
      {
          keyspace

http://git-wip-us.apache.org/repos/asf/cassandra/blob/35b21513/src/java/org/apache/cassandra/io/util/FileUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/35b21513/src/java/org/apache/cassandra/service/CassandraDaemon.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/service/CassandraDaemon.java
index 7c56fb7,0970776..7259a17
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@@ -32,8 -33,12 +32,10 @@@ import javax.management.ObjectName
  import javax.management.StandardMBean;
  
  import com.addthis.metrics.reporter.config.ReporterConfig;
 -
  import com.google.common.collect.Iterables;
  import com.google.common.util.concurrent.Uninterruptibles;
+ 
+ import org.apache.cassandra.io.sstable.CorruptSSTableException;
 -import org.apache.log4j.PropertyConfigurator;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
@@@ -173,9 -206,16 +175,16 @@@ public class CassandraDaemo
                      if (e2 instanceof FSError)
                      {
                          if (e2 != e) // make sure FSError gets logged exactly 
once.
 -                            logger.error("Exception in thread " + t, e2);
 +                            logger.error("Exception in thread {}", t, e2);
                          FileUtils.handleFSError((FSError) e2);
                      }
+ 
+                     if (e2 instanceof CorruptSSTableException)
+                     {
+                         if (e2 != e)
+                             logger.error("Exception in thread " + t, e2);
+                         
FileUtils.handleCorruptSSTable((CorruptSSTableException) e2);
+                     }
                  }
              }
          });

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

Reply via email to