hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From zhang...@apache.org
Subject [09/50] [abbrv] hbase git commit: HBASE-19915 Create merged/ daughter region/s with initial state CLOSED from MetaTableAccessor#splitRegion()/ mergeRegions()
Date Sat, 03 Feb 2018 09:54:44 GMT
HBASE-19915 Create merged/ daughter region/s with initial state CLOSED from MetaTableAccessor#splitRegion()/
mergeRegions()

If the initial state is not set to CLOSED while creating merged/ children region/s, merged/
children region/s get stored in meta with state OFFLINE(0). If the master gets restarted after
Merge/ Split procedure stores merged/ children region/s, master startup sequence tries to
assign
offline region/s. This is followed by re-assignment of merged/ children region from resumed
Merge/
Split procedure.

This bug is related to HBASE-19530.

Signed-off-by: Michael Stack <stack@apache.org>


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

Branch: refs/heads/HBASE-19397-branch-2
Commit: fdbc843516b6731a84f6d7b4f5b988309ad56171
Parents: 3398637
Author: Umesh Agashe <uagashe@cloudera.com>
Authored: Thu Feb 1 15:43:32 2018 -0800
Committer: Michael Stack <stack@apache.org>
Committed: Fri Feb 2 18:24:42 2018 -0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/MetaTableAccessor.java   | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/fdbc8435/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java
index 938874a..f80bbc0 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/MetaTableAccessor.java
@@ -1679,6 +1679,13 @@ public class MetaTableAccessor {
               .setValue(RegionInfo.toByteArray(regionB))
               .build());
 
+      // Set initial state to CLOSED
+      // NOTE: If initial state is not set to CLOSED then merged region gets added with the
+      // default OFFLINE state. If Master gets restarted after this step, start up sequence
of
+      // master tries to assign this offline region. This is followed by re-assignments of
the
+      // merged region from resumed {@link MergeTableRegionsProcedure}
+      addRegionStateToPut(putOfMerged, RegionState.State.CLOSED);
+
       // Deletes for merging regions
       Delete deleteA = makeDeleteFromRegionInfo(regionA, time);
       Delete deleteB = makeDeleteFromRegionInfo(regionB, time);
@@ -1743,6 +1750,14 @@ public class MetaTableAccessor {
       Put putA = makePutFromRegionInfo(splitA);
       Put putB = makePutFromRegionInfo(splitB);
 
+      // Set initial state to CLOSED
+      // NOTE: If initial state is not set to CLOSED then daughter regions get added with
the
+      // default OFFLINE state. If Master gets restarted after this step, start up sequence
of
+      // master tries to assign these offline regions. This is followed by re-assignments
of the
+      // daughter regions from resumed {@link SplitTableRegionProcedure}
+      addRegionStateToPut(putA, RegionState.State.CLOSED);
+      addRegionStateToPut(putA, RegionState.State.CLOSED);
+
       addSequenceNum(putA, 1, -1, splitA.getReplicaId()); //new regions, openSeqNum = 1 is
fine.
       addSequenceNum(putB, 1, -1, splitB.getReplicaId());
 


Mime
View raw message