[ https://issues.apache.org/jira/browse/HBASE-24376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17152065#comment-17152065 ]
Ruslan Sabitov commented on HBASE-24376: ---------------------------------------- I faced with the issue in branch-1 (HBase 1.2.0-cdh5.16.2): 2020-07-02 16:41:18,337 INFO org.apache.hadoop.hbase.master.normalizer.MergeNormalizationPlan: Executing merging normalization plan: MergeNormalizationPlan{firstRegion={ENC ODED => feba09265266f1c3c090bc42cc90becc, NAME => 'tableName,Aw-BEZ0JD4M3HrvA4Yks,1593695478557.feba09265266f1c3c090bc42cc90becc.', STARTKEY => 'Aw-BEZ0JD4M3HrvA4Yks', EN DKEY => 'D0sYMT716R0tyHPGk8ii'}, secondRegion={ENCODED => 8003ecbf849c4f5e27bf5956ec0729cc, NAME => 'TableName,B_zjT044PCvwQ4I53Q5m,1593695479990.8003ecbf849c4f5e27bf5956 ec0729cc.', STARTKEY => 'B_zjT044PCvwQ4I53Q5m', ENDKEY => 'FCzjFZ4Vhb0hpVtn6VxP'}} > MergeNormalizer is merging non-adjacent regions and causing region > overlaps/holes. > ---------------------------------------------------------------------------------- > > Key: HBASE-24376 > URL: https://issues.apache.org/jira/browse/HBASE-24376 > Project: HBase > Issue Type: Bug > Components: master > Affects Versions: 2.3.0 > Reporter: Huaxiang Sun > Assignee: Huaxiang Sun > Priority: Critical > Fix For: 3.0.0-alpha-1, 2.3.0, 2.4.0 > > > Currently, we found normalizer was merging regions which are non-adjacent, it > will cause inconsistencies in the cluster. > {code:java} > 439055 2020-05-08 17:47:09,814 INFO > org.apache.hadoop.hbase.master.normalizer.MergeNormalizationPlan: Executing > merging normalization plan: MergeNormalizationPlan{firstRegion={ENCODED => > 47fe236a5e3649ded95cb64ad0c08492, NAME => > 'TABLE,\x03\x01\x05\x01\x04\x02,1554838974870.47fe236a5e3649ded95cb64ad > 0c08492.', STARTKEY => '\x03\x01\x05\x01\x04\x02', ENDKEY => > '\x03\x01\x05\x01\x04\x02\x01\x02\x02201904082200\x00\x00\x03Mac\x00\x00\x00\x00\x00\x00\x00\x00\x00iMac13,1\x00\x00\x00\x00\x00\x049.3-14E260\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x05'}, > secondRegion={ENCODED => 0c0f2aa67f4329d5c4 8ba0320f173d31, NAME => > 'TABLE,\x03\x01\x05\x02\x01\x01,1554830735526.0c0f2aa67f4329d5c48ba0320f173d31.', > STARTKEY => '\x03\x01\x05\x02\x01\x01', ENDKEY => > '\x03\x01\x05\x02\x01\x02'}} > 439056 2020-05-08 17:47:11,438 INFO org.apache.hadoop.hbase.ScheduledChore: > CatalogJanitor-*****:16000 average execution time: 1676219193 ns. > 439057 2020-05-08 17:47:11,730 INFO org.apache.hadoop.hbase.master.HMaster: > Client=null/null merge regions [47fe236a5e3649ded95cb64ad0c08492], > [0c0f2aa67f4329d5c48ba0320f173d31] > {code} > > The root cause is that getMergeNormalizationPlan() uses a list of regionInfo > which is ordered by regionName. regionName does not necessary guarantee the > order of STARTKEY (let's say 'aa1', 'aa1!', in order of regionName, it will > be 'aa1!' followed by 'aa1'. This will result in normalizer merging > non-adjacent regions into one and creates overlaps. This is not an issue in > branch-1 as the list is already ordered by RegionInfo.COMPARATOR in > normalizer. > -- This message was sent by Atlassian Jira (v8.3.4#803005)