infraio commented on a change in pull request #221: HBASE-22365 Region may be
opened on two RegionServers
URL: https://github.com/apache/hbase/pull/221#discussion_r282722269
##########
File path:
hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java
##########
@@ -1575,18 +1562,36 @@ void regionClosing(RegionStateNode regionNode) throws
IOException {
metrics.incrementOperationCounter();
}
- // should be called within the synchronized block of RegionStateNode
- // The parameter 'normally' means whether we are closed cleanly, if it is
true, then it means that
- // we are closed due to a RS crash.
- void regionClosed(RegionStateNode regionNode, boolean normally) throws
IOException {
- RegionState.State state = regionNode.getState();
+ // for open and close, they will first be persist to the procedure store in
+ // RegionRemoteProcedureBase. So here we will first change the in memory
state as it is considered
+ // as succeeded if the persistence to procedure store is succeeded, and then
when the
+ // RegionRemoteProcedureBase is woken up, we will persist the
RegionStateNode to hbase:meta.
+
+ // should be called under the RegionStateNode lock
+ void regionOpenedNoPersistence(RegionStateNode regionNode) throws
IOException {
+ regionNode.transitionState(State.OPEN, STATES_EXPECTED_ON_OPEN);
+ RegionInfo regionInfo = regionNode.getRegionInfo();
+ regionStates.addRegionToServer(regionNode);
+ regionStates.removeFromFailedOpen(regionInfo);
+ }
+
+ // should be called under the RegionStateNode lock
+ void regionClosedNoPersistence(RegionStateNode regionNode) throws
IOException {
Review comment:
ditto.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services