diff --git a/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java b/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java index 8373312..1dc7c9d 100644 --- a/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java +++ b/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java @@ -139,7 +139,7 @@ class CompactSplitThread extends Thread { private void split(final HRegion parent, final byte [] midKey) throws IOException { final long startTime = System.currentTimeMillis(); - SplitTransaction st = new SplitTransaction(parent, midKey); + SplitTransaction st = getSplitTransactionProcessor(parent, midKey); // If prepare does not return true, for some reason -- logged inside in // the prepare call -- we are not ready to split just now. Just return. if (!st.prepare()) return; @@ -172,6 +172,11 @@ class CompactSplitThread extends Thread { StringUtils.formatTimeDiff(System.currentTimeMillis(), startTime)); } + SplitTransaction getSplitTransactionProcessor(final HRegion parent, + final byte [] midKey) { + return new SplitTransaction(parent, midKey); + } + /** * Only interrupt once it's done with a run through the work loop. */ diff --git a/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index f56e8b9..abb8ead 100644 --- a/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ b/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -343,7 +343,7 @@ public class HRegionServer implements HRegionInterface, this.cacheFlusher = new MemStoreFlusher(conf, this); // Compaction thread - this.compactSplitThread = new CompactSplitThread(this); + this.compactSplitThread = getCompactSplitThread(this); // Log rolling thread this.hlogRoller = new LogRoller(this); @@ -361,6 +361,10 @@ public class HRegionServer implements HRegionInterface, this.threadWakeFrequency); } + CompactSplitThread getCompactSplitThread(final HRegionServer hrs) { + return new CompactSplitThread(this); + } + /** * We register ourselves as a watcher on the master address ZNode. This is * called by ZooKeeper when we get an event on that ZNode. When this method