You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2011/12/12 20:25:23 UTC

svn commit: r1213384 - in /hbase/branches/0.92: CHANGES.txt src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java

Author: stack
Date: Mon Dec 12 19:25:22 2011
New Revision: 1213384

URL: http://svn.apache.org/viewvc?rev=1213384&view=rev
Log:
HBASE-4881 Unhealthy region is on service caused by rollback of region splitting

Modified:
    hbase/branches/0.92/CHANGES.txt
    hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java
    hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java

Modified: hbase/branches/0.92/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/CHANGES.txt?rev=1213384&r1=1213383&r2=1213384&view=diff
==============================================================================
--- hbase/branches/0.92/CHANGES.txt (original)
+++ hbase/branches/0.92/CHANGES.txt Mon Dec 12 19:25:22 2011
@@ -481,6 +481,8 @@ Release 0.92.0 - Unreleased
                (Honghua Zhu)
    HBASE-5008  The clusters can't provide services because Region can't flush
                (Gaojinchao)
+   HBASE-4881  Unhealthy region is on service caused by rollback of region splitting
+               (Chunhui Shen)
 
   TESTS
    HBASE-4492  TestRollingRestart fails intermittently

Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java?rev=1213384&r1=1213383&r2=1213384&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java Mon Dec 12 19:25:22 2011
@@ -723,12 +723,18 @@ public class SplitTransaction {
         break;
 
       case CLOSED_PARENT_REGION:
-        // So, this returns a seqid but if we just closed and then reopened, we
-        // should be ok. On close, we flushed using sequenceid obtained from
-        // hosting regionserver so no need to propagate the sequenceid returned
-        // out of initialize below up into regionserver as we normally do.
-        // TODO: Verify.
-        this.parent.initialize();
+        try {
+          // So, this returns a seqid but if we just closed and then reopened, we
+          // should be ok. On close, we flushed using sequenceid obtained from
+          // hosting regionserver so no need to propagate the sequenceid returned
+          // out of initialize below up into regionserver as we normally do.
+          // TODO: Verify.
+          this.parent.initialize();
+        } catch (IOException e) {
+          LOG.error("Failed rollbacking CLOSED_PARENT_REGION of region " +
+            this.parent.getRegionNameAsString(), e);
+          throw new RuntimeException(e);
+        }
         break;
 
       case STARTED_REGION_A_CREATION:

Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java?rev=1213384&r1=1213383&r2=1213384&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/metrics/RegionServerMetrics.java Mon Dec 12 19:25:22 2011
@@ -180,12 +180,18 @@ public class RegionServerMetrics impleme
     new MetricsIntValue("flushQueueSize", registry);
 
   /**
-   * filesystem read latency
+   * filesystem sequential read latency
    */
   public final MetricsTimeVaryingRate fsReadLatency =
     new MetricsTimeVaryingRate("fsReadLatency", registry);
 
   /**
+   * filesystem positional read latency
+   */
+  public final MetricsTimeVaryingRate fsPreadLatency =
+    new MetricsTimeVaryingRate("fsPreadLatency", registry);
+
+  /**
    * filesystem write latency
    */
   public final MetricsTimeVaryingRate fsWriteLatency =