hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18105) [AMv2] Split/Merge need cleanup; currently they diverge and do not fully embrace AMv2 world
Date Fri, 09 Jun 2017 20:03:18 GMT

    [ https://issues.apache.org/jira/browse/HBASE-18105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16044930#comment-16044930

stack commented on HBASE-18105:

Great writeup. Thanks for doing this. I appreciate the fresh perspective you bring.

There is a bunch of stuff to address in here. Yes, to subtasks.


 # There should be one path to merge and one path to split.
 # Master runs splits and merges. Regionservers can ask for splits but Master is final arbiter
and orchestrator (This is new in hbase2). Stepping stones put in place so we could roll out
the AMv2 gradually that had master-ask-RS-which-then-had-Master run the split or merge, can
now be removed since AMv2 has landed.
 # We need to preserve old APIs yet add new ones that exploit the fact that you can spawn
a task async; i.e. the being able to ask when the task has completed is new to AMv2 and we
should expose to clients.

There are other 'rules of engagement' but above list is enough for now.

Back to your note. You have put your finger on the 'baggage' talked about in the original

We should purge route #2 from your list. Deprecate and remove the internal parts of this path.
Change HBaseAdmin#mergeRegions to use mergeRegionsAsync internally. Remove all protobufs and
mention everywhere... Might have to leave the method on HMaster... but remove if can. Ditto
for the RS side. Perhaps implement using mergeRegion.

It came in here:

tree 7f9dcf577306a38c50b863a2bc4e868f4118a937
parent add3a064c754ce2f45204cb30e4bdfad9ee71305
author zjushch <zjushch@unknown> Sun Mar 24 10:26:21 2013 +0000
committer zjushch <zjushch@unknown> Sun Mar 24 10:26:21 2013 +0000

HBASE-7403 Online Merge (Chunhui shen)

For SplitProcedure, we need to expose a splitRegionAsync. I don't see one.

Then, splitRegion going to the RegionServer is an indirection we should work to undo. Agree
it should be like #1 for merge above.

Thank you.

> [AMv2] Split/Merge need cleanup; currently they diverge and do not fully embrace AMv2
> -------------------------------------------------------------------------------------------
>                 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

View raw message