[1/2] git commit: Add commit_failure_policy.

2014-02-11 Thread marcuse
Updated Branches:
  refs/heads/trunk 7604935ef - a6e7d1405


Add commit_failure_policy.

Patch by belliottsmith, reviewed by marcuse for CASSANDRA-6364

CASSANDRA-6364


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

Branch: refs/heads/trunk
Commit: 9381b8d569ae17cf2760bca266b5253e4bcd6ac2
Parents: 55b5605
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Feb 11 13:13:37 2014 +0100
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Feb 11 13:13:37 2014 +0100

--
 CHANGES.txt |  2 +-
 conf/cassandra.yaml |  8 +
 .../org/apache/cassandra/config/Config.java |  8 +
 .../cassandra/config/DatabaseDescriptor.java| 11 ++
 .../BatchCommitLogExecutorService.java  | 17 +++--
 .../cassandra/db/commitlog/CommitLog.java   | 24 +
 .../db/commitlog/CommitLogAllocator.java| 37 +---
 .../PeriodicCommitLogExecutorService.java   | 26 --
 .../org/apache/cassandra/io/util/FileUtils.java | 20 ++-
 .../cassandra/service/StorageService.java   | 19 ++
 .../org/apache/cassandra/db/CommitLogTest.java  | 32 +
 11 files changed, 169 insertions(+), 35 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9381b8d5/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 93552ef..a8114a3 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -9,13 +9,13 @@
  * Account for range/row tombstones in tombstone drop
time histogram (CASSANDRA-6522)
  * Stop CommitLogSegment.close() from calling sync() (CASSANDRA-6652)
+ * Make commitlog failure handling configurable (CASSANDRA-6364)
 Merged from 1.2:
  * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
  * Fix partition and range deletes not triggering flush (CASSANDRA-6655)
  * Fix mean cells and mean row size per sstable calculations (CASSANDRA-6667)
  * Compact hints after partial replay to clean out tombstones (CASSANDRA-)
 
-
 2.0.5
  * Reduce garbage generated by bloom filter lookups (CASSANDRA-6609)
  * Add ks.cf names to tombstone logging (CASSANDRA-6597)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9381b8d5/conf/cassandra.yaml
--
diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml
index db924bb..bfe60c4 100644
--- a/conf/cassandra.yaml
+++ b/conf/cassandra.yaml
@@ -121,6 +121,14 @@ commitlog_directory: /var/lib/cassandra/commitlog
 # ignore: ignore fatal errors and let requests fail, as in pre-1.2 Cassandra
 disk_failure_policy: stop
 
+# policy for commit disk failures:
+# stop: shut down gossip and Thrift, leaving the node effectively dead, but
+#   can still be inspected via JMX.
+# stop_commit: shutdown the commit log, letting writes collect but 
+#  continuing to service reads, as in pre-2.0.5 Cassandra
+# ignore: ignore fatal errors and let the batches fail
+commit_failure_policy: stop
+
 # Maximum size of the key cache in memory.
 #
 # Each key cache hit saves 1 seek and each row cache hit saves 2 seeks at the

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9381b8d5/src/java/org/apache/cassandra/config/Config.java
--
diff --git a/src/java/org/apache/cassandra/config/Config.java 
b/src/java/org/apache/cassandra/config/Config.java
index a4e4e92..2fa49f3 100644
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@ -45,6 +45,7 @@ public class Config
 public DiskAccessMode disk_access_mode = DiskAccessMode.auto;
 
 public DiskFailurePolicy disk_failure_policy = DiskFailurePolicy.ignore;
+public CommitFailurePolicy commit_failure_policy = 
CommitFailurePolicy.stop;
 
 /* initial token in the ring */
 public String initial_token;
@@ -230,6 +231,13 @@ public class Config
 ignore,
 }
 
+public static enum CommitFailurePolicy
+{
+stop,
+stop_commit,
+ignore,
+}
+
 public static enum RequestSchedulerId
 {
 keyspace

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9381b8d5/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index bd5db69..e1a95ab 100644
--- 

git commit: Add commit_failure_policy.

2014-02-11 Thread marcuse
Updated Branches:
  refs/heads/cassandra-2.0 55b5605b7 - 9381b8d56


Add commit_failure_policy.

Patch by belliottsmith, reviewed by marcuse for CASSANDRA-6364

CASSANDRA-6364


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

Branch: refs/heads/cassandra-2.0
Commit: 9381b8d569ae17cf2760bca266b5253e4bcd6ac2
Parents: 55b5605
Author: Marcus Eriksson marc...@apache.org
Authored: Tue Feb 11 13:13:37 2014 +0100
Committer: Marcus Eriksson marc...@apache.org
Committed: Tue Feb 11 13:13:37 2014 +0100

--
 CHANGES.txt |  2 +-
 conf/cassandra.yaml |  8 +
 .../org/apache/cassandra/config/Config.java |  8 +
 .../cassandra/config/DatabaseDescriptor.java| 11 ++
 .../BatchCommitLogExecutorService.java  | 17 +++--
 .../cassandra/db/commitlog/CommitLog.java   | 24 +
 .../db/commitlog/CommitLogAllocator.java| 37 +---
 .../PeriodicCommitLogExecutorService.java   | 26 --
 .../org/apache/cassandra/io/util/FileUtils.java | 20 ++-
 .../cassandra/service/StorageService.java   | 19 ++
 .../org/apache/cassandra/db/CommitLogTest.java  | 32 +
 11 files changed, 169 insertions(+), 35 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/9381b8d5/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 93552ef..a8114a3 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -9,13 +9,13 @@
  * Account for range/row tombstones in tombstone drop
time histogram (CASSANDRA-6522)
  * Stop CommitLogSegment.close() from calling sync() (CASSANDRA-6652)
+ * Make commitlog failure handling configurable (CASSANDRA-6364)
 Merged from 1.2:
  * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
  * Fix partition and range deletes not triggering flush (CASSANDRA-6655)
  * Fix mean cells and mean row size per sstable calculations (CASSANDRA-6667)
  * Compact hints after partial replay to clean out tombstones (CASSANDRA-)
 
-
 2.0.5
  * Reduce garbage generated by bloom filter lookups (CASSANDRA-6609)
  * Add ks.cf names to tombstone logging (CASSANDRA-6597)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9381b8d5/conf/cassandra.yaml
--
diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml
index db924bb..bfe60c4 100644
--- a/conf/cassandra.yaml
+++ b/conf/cassandra.yaml
@@ -121,6 +121,14 @@ commitlog_directory: /var/lib/cassandra/commitlog
 # ignore: ignore fatal errors and let requests fail, as in pre-1.2 Cassandra
 disk_failure_policy: stop
 
+# policy for commit disk failures:
+# stop: shut down gossip and Thrift, leaving the node effectively dead, but
+#   can still be inspected via JMX.
+# stop_commit: shutdown the commit log, letting writes collect but 
+#  continuing to service reads, as in pre-2.0.5 Cassandra
+# ignore: ignore fatal errors and let the batches fail
+commit_failure_policy: stop
+
 # Maximum size of the key cache in memory.
 #
 # Each key cache hit saves 1 seek and each row cache hit saves 2 seeks at the

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9381b8d5/src/java/org/apache/cassandra/config/Config.java
--
diff --git a/src/java/org/apache/cassandra/config/Config.java 
b/src/java/org/apache/cassandra/config/Config.java
index a4e4e92..2fa49f3 100644
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@ -45,6 +45,7 @@ public class Config
 public DiskAccessMode disk_access_mode = DiskAccessMode.auto;
 
 public DiskFailurePolicy disk_failure_policy = DiskFailurePolicy.ignore;
+public CommitFailurePolicy commit_failure_policy = 
CommitFailurePolicy.stop;
 
 /* initial token in the ring */
 public String initial_token;
@@ -230,6 +231,13 @@ public class Config
 ignore,
 }
 
+public static enum CommitFailurePolicy
+{
+stop,
+stop_commit,
+ignore,
+}
+
 public static enum RequestSchedulerId
 {
 keyspace

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9381b8d5/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
--
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index bd5db69..e1a95ab 100644
---