[ https://issues.apache.org/jira/browse/HBASE-18105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16137888#comment-16137888 ]
stack commented on HBASE-18105: ------------------------------- [~easyliangjob] Thank you for digging in. I like your reasoning on why an HRI has SPLIT in it. The alternative would be a new column in hbase:meta that had state in it. We already have info:splitA, info:splitB, info:mergeA, and info:mergeB columns which are probably badly named now I look at them but marking a parent region as split in a column in hbase:meta would go w/ our writing of splitA and splitB as hbase:meta columns better than setting flag in HRI. File a TODO I'd say? In this issue, add your nice reasoning as a comment on the split method? (i thought we were putting region state already -- i.e. OPENING, OPEN -- into hbase:meta but I was wrong -- we just update locations as region goes through its stages). bq. Overall, there are still some places in split and merge needs to be cleaned up. What you thinking [~easyliangjob]? Thanks for doing this great cleanup. > [AMv2] Split/Merge need cleanup; currently they diverge and do not fully > embrace AMv2 world > ------------------------------------------------------------------------------------------- > > Key: HBASE-18105 > URL: https://issues.apache.org/jira/browse/HBASE-18105 > Project: HBase > Issue Type: Sub-task > Components: Region Assignment > Affects Versions: 2.0.0 > Reporter: stack > Fix For: 2.0.0 > > > Region Split and Merge work on the new AMv2 but they work differently. This > issue is about bringing them back together and fully embracing the AMv2 > program. > They both have issues mostly the fact that they carry around baggage no > longer necessary in the new world of assignment. > Here are some of the items: > Split and Merge metadata modifications are done by the Master now but we have > vestige of Split/Merge on RS still; e.g. when we SPLIT, we ask the Master > which asks the RS, which turns around, and asks the Master to run the > operation. Fun. MERGE is all done Master-side. > > Clean this up. Remove asking RS to run SPLIT and remove RegionMergeRequest, > etc. on RS-side. Also remove PONR. We don’t Points-Of-No-Return now we are up > on Pv2. Remove all calls in Interfaces; they are unused. Make RS still able > to detect when split, but have it be a client of Master like anyone else. > Split is Async but does not return procId > Split is async. Doesn’t return the procId though. Merge does. Fix. Only hard > part here I think is the Admin API does not allow procid return. > Flags > Currently OFFLINE is determined by looking either at the master instance of > HTD (isOffline) and/or at the RegionState#state. Ditto for SPLIT. For MERGE, > we rely on RegionState#state. Related is a note above on how split works -- > there is a split flag in HTD when there should not be. > > TODO is move to rely on RegionState#state exclusively in Master. > From Split/Merge Procedures need finishing in > https://docs.google.com/document/d/1eVKa7FHdeoJ1-9o8yZcOTAQbv0u0bblBlCCzVSIn69g/edit#heading=h.4b60dc1h4m1f -- This message was sent by Atlassian JIRA (v6.4.14#64029)