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
----------------------------------------------------------------------