You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2014/11/12 18:52:14 UTC

[3/3] hbase git commit: HBASE-12454 Setting didPerformCompaction early in HRegion#compact

HBASE-12454 Setting didPerformCompaction early in HRegion#compact


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

Branch: refs/heads/master
Commit: b0a434a5ce4aac1bc6e50ebf7c58f0e65052caae
Parents: fb6c5c7
Author: Andrew Purtell <ap...@apache.org>
Authored: Wed Nov 12 09:29:46 2014 -0800
Committer: Andrew Purtell <ap...@apache.org>
Committed: Wed Nov 12 09:47:46 2014 -0800

----------------------------------------------------------------------
 .../main/java/org/apache/hadoop/hbase/regionserver/HRegion.java  | 2 +-
 .../main/java/org/apache/hadoop/hbase/regionserver/HStore.java   | 4 +++-
 .../org/apache/hadoop/hbase/regionserver/TestCompaction.java     | 3 +++
 3 files changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/b0a434a5/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index fbf151a..0e093ea 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -1565,8 +1565,8 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver { //
         doRegionCompactionPrep();
         try {
           status.setStatus("Compacting store " + store);
-          didPerformCompaction = true;
           store.compact(compaction);
+          didPerformCompaction = true;
         } catch (InterruptedIOException iioe) {
           String msg = "compaction interrupted";
           LOG.info(msg, iioe);

http://git-wip-us.apache.org/repos/asf/hbase/blob/b0a434a5/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
index 8b41401..16c797c 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
@@ -1544,7 +1544,9 @@ public class HStore implements Store {
 
   @Override
   public void cancelRequestedCompaction(CompactionContext compaction) {
-    finishCompactionRequest(compaction.getRequest());
+    if (compaction != null) {
+      finishCompactionRequest(compaction.getRequest());
+    }
   }
 
   private void finishCompactionRequest(CompactionRequest cr) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/b0a434a5/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java
index 4900ef4..0a1d8b8 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java
@@ -161,6 +161,9 @@ public class TestCompaction {
       }).when(spyR).doRegionCompactionPrep();
 
       // force a minor compaction, but not before requesting a stop
+
+      // Accounting: Normally compaction requests go through HStore#requestCompaction
+      r.reportCompactionRequestStart(false);      
       spyR.compactStores();
 
       // ensure that the compaction stopped, all old files are intact,