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

Rajeshbabu Chintaguntla commented on HBASE-12972:
-------------------------------------------------

[~apurtell] The new interfaces for SplitTransaction, RegionMergeTransaction in 
the patch may not fully helpful for reimplementing the local indexes 
split/merge without diving into the details. I think we can handle the 
SplitTransaction,RegionMergeTransaction changes in separate JIRA(may be 
HBASE-12975 here).

To support local index regions split/merge I think splittransaction should be 
changed so that it should also split more than one region atomically and the 
steps should be changed like this.
1) We should be able pass/add one or more regions to SplitTransaction.
2) run steps before PONR(or commit) for all the regions.
3) commit split mutations of all the regions
4) run steps after PONR(or commit) for all the regions
5) Any failures before PONR rollback the regions completed steps before PONR.
This way in case of one region it should work as usual how it works currently.

Apart from  this before actual split execution starts we should give provision 
to add more regions to split through coprocessors. So this way we need not 
touch any internals.

Similar way we can change for regions merge as well.



> Region, a supportable public/evolving subset of HRegion
> -------------------------------------------------------
>
>                 Key: HBASE-12972
>                 URL: https://issues.apache.org/jira/browse/HBASE-12972
>             Project: HBase
>          Issue Type: New Feature
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>             Fix For: 2.0.0, 1.0.1, 1.1.0, 0.98.11
>
>         Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, 
> HBASE-12972-0.98.patch
>
>
> On HBASE-12566, [~lhofhansl] proposed:
> {quote}
> Maybe we can have a {{Region}} interface that is to {{HRegion}} is what 
> {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} 
> but used in some coprocessor hooks.
> {quote}
> By example, now coprocessors have to reach into HRegion in order to 
> participate in row and region locking protocols, this is one area where the 
> functionality is legitimate for coprocessors but not for users, so an 
> in-between interface make sense.
> In addition we should promote {{Store}}'s interface audience to 
> LimitedPrivate(COPROC).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to