You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2012/05/11 14:50:50 UTC

svn commit: r1337133 - in /hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase: HMsg.java master/ProcessRegionOpen.java master/ServerManager.java

Author: mbautin
Date: Fri May 11 12:50:50 2012
New Revision: 1337133

URL: http://svn.apache.org/viewvc?rev=1337133&view=rev
Log:
[master] Part 2 of the earlier diff : Address the Duplicate assignment case so that we send the messages to the RS

Author: aaiyer

Summary:
My diff consisted of 3 parts .. but arc amend/git svn dcommit only sent in the
first part. This is the remaining parts

The original Differential Revision was : https://phabricator.fb.com/D466667
Original summary for the entirity:

Master detects duplicate assignment upon processing ZK node updates.
Unforutnately, the messages generated by the master for the RS to shutdown
the region never used to be delivered to the RS because the method was not
called during the serverReport.

Instead of logging and error and ignore the message. We will hold them, and
deliver it to the RS during the next serverReport.

other minor batched :
RegionManager.removeRegion() should not delete unassigned ZNodes.

RegionManager.removeRegion() currently removes the specified region from the
regions in transition map, and deletes the corresponding unassigned ZNode.

Deletion of the zNode is done after RegionManager.removeRegion() in
ProcessRegionOpen.  Operations other than ProcessRegionOpen should not delete
unassigned ZNodes anyways.

Attempting to delete a znode twice is causing error messages. This
diff fixes this.

ProcessRegionOpen does not assume that we do. It seems to go and
delete the znode after calling removeRegion. We should not be calling
this twice.

change ProcessRegionOpen to make review/reasoning easier.

Test Plan: tbd: run unit tests, test out on dev server/tm002

Reviewers: kannan, pkhemani

Reviewed By: pkhemani

CC: liyintang, hbase-eng@

Differential Revision: https://phabricator.fb.com/D469158

Task ID: 1052363

Modified:
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HMsg.java
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/ProcessRegionOpen.java
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HMsg.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HMsg.java?rev=1337133&r1=1337132&r2=1337133&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HMsg.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/HMsg.java Fri May 11 12:50:50 2012
@@ -73,7 +73,7 @@ public class HMsg implements Writable {
 
     // Message types sent from the region server to the master
     /** region server is now serving the specified region */
-    MSG_REPORT_OPEN,
+    MSG_REPORT_OPEN, // sent to the master through the ZK node. Not directly.
 
     /** region server is no longer serving the specified region */
     MSG_REPORT_CLOSE,

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/ProcessRegionOpen.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/ProcessRegionOpen.java?rev=1337133&r1=1337132&r2=1337133&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/ProcessRegionOpen.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/ProcessRegionOpen.java Fri May 11 12:50:50 2012
@@ -110,13 +110,13 @@ public class ProcessRegionOpen extends P
       if(master.getRegionManager().
           isOfflined(regionInfo.getRegionNameAsString())) {
         LOG.warn("We opened a region while it was asked to be closed.");
+        ZooKeeperWrapper zkWrapper =
+            ZooKeeperWrapper.getInstance(master.getConfiguration(),
+                master.getZKWrapperName());
+        zkWrapper.deleteUnassignedRegion(regionInfo.getEncodedName());
       } else {
         master.getRegionManager().removeRegion(regionInfo);
       }
-      ZooKeeperWrapper zkWrapper =
-          ZooKeeperWrapper.getInstance(master.getConfiguration(),
-              master.getZKWrapperName());
-      zkWrapper.deleteUnassignedRegion(regionInfo.getEncodedName());
       return RegionServerOperationResult.OPERATION_SUCCEEDED;
     }
   }

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java?rev=1337133&r1=1337132&r2=1337133&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java Fri May 11 12:50:50 2012
@@ -544,10 +544,7 @@ public class ServerManager {
           break;
 
         case MSG_REPORT_OPEN:
-          // Amit: This case is never being executed. So let us not bother
-          LOG.fatal("Amit believes this stmt should never be executed");
-          System.exit(-1);
-          processRegionOpen(serverInfo, region, returnMsgs);
+          LOG.error("MSG_REPORT_OPEN is not expected to be received from RS.");
           break;
 
         case MSG_REPORT_CLOSE: