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 2013/09/23 16:22:11 UTC
[2/3] git commit: Move batchlog replay to its own executor patch by
Oleg Anastasyev; reviewed by jbellis for CASSANDRA-6079
Move batchlog replay to its own executor
patch by Oleg Anastasyev; reviewed by jbellis for CASSANDRA-6079
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5dc50864
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5dc50864
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5dc50864
Branch: refs/heads/trunk
Commit: 5dc508645759f6f45f837ae38bbefc631b2209a6
Parents: 7e59db2
Author: Jonathan Ellis <jb...@apache.org>
Authored: Mon Sep 23 09:22:00 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Mon Sep 23 09:22:00 2013 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
src/java/org/apache/cassandra/db/BatchlogManager.java | 11 +++++++++--
2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5dc50864/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 6df5559..0403381 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.0.2
+ * Move batchlog replay to its own executor (CASSANDRA-6079)
* Improve memory usage of metadata min/max column names (CASSANDRA-6077)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5dc50864/src/java/org/apache/cassandra/db/BatchlogManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/BatchlogManager.java b/src/java/org/apache/cassandra/db/BatchlogManager.java
index 558a498..bad076f 100644
--- a/src/java/org/apache/cassandra/db/BatchlogManager.java
+++ b/src/java/org/apache/cassandra/db/BatchlogManager.java
@@ -17,13 +17,16 @@
*/
package org.apache.cassandra.db;
-import java.io.*;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
import java.lang.management.ManagementFactory;
import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.util.*;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
@@ -35,6 +38,7 @@ import com.google.common.collect.Lists;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.cql3.QueryProcessor;
@@ -70,6 +74,8 @@ public class BatchlogManager implements BatchlogManagerMBean
private final AtomicLong totalBatchesReplayed = new AtomicLong();
private final AtomicBoolean isReplaying = new AtomicBoolean();
+ private static final ScheduledExecutorService batchlogTasks = new DebuggableScheduledThreadPoolExecutor("BatchlogTasks");
+
public void start()
{
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
@@ -89,7 +95,8 @@ public class BatchlogManager implements BatchlogManagerMBean
replayAllFailedBatches();
}
};
- StorageService.optionalTasks.scheduleWithFixedDelay(runnable, StorageService.RING_DELAY, REPLAY_INTERVAL, TimeUnit.MILLISECONDS);
+
+ batchlogTasks.scheduleWithFixedDelay(runnable, StorageService.RING_DELAY, REPLAY_INTERVAL, TimeUnit.MILLISECONDS);
}
public int countAllBatches()