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

Gary Helmling commented on HBASE-9489:
--------------------------------------

I don't understand the API that this patch is adding:
{code}
+  void preMergeBeforePONR(final 
ObserverContext<RegionServerCoprocessorEnvironment> ctx,
+      final HRegion regionA, final HRegion regionB, List<Mutation> 
metaEntries) throws IOException;

+  void preMergeAfterPONR(final 
ObserverContext<RegionServerCoprocessorEnvironment> ctx,
+      final HRegion regionA, final HRegion regionB, final HRegion 
mergedRegion) throws IOException;
{code}

Generally, "before" and "after" are what the "pre" and "post" hooks are used 
for respectively.  Having a "pre...Before" and "pre...After" hook suggests to 
me that the API is unclear.  It instead looks to me like these 2 methods are 
actually a "pre" and "post" hook around a single action.  Maybe something like 
preMergeCommit / postMergeCommit would be better?

I'm also not sure I understand the usage of ObserverContext.bypass() related to 
these two methods.  bypass() normally means "skip the normal processing".  But 
in preMergeBeforePONR(), according to the javadoc, it will actually _abort_ the 
merge.  It seems like using a return value to indicate whether to proceed or 
abort would be more appropriate.  For preMergeAfterPONR(), the javadoc says 
that bypass is ignored, which is unusual for a "pre" method.  It would make 
more sense for bypass() to be ignored if this were a "post" method (say 
"postMergeCommit").

> Add cp hooks in online merge before and after setting PONR
> ----------------------------------------------------------
>
>                 Key: HBASE-9489
>                 URL: https://issues.apache.org/jira/browse/HBASE-9489
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: rajeshbabu
>            Assignee: rajeshbabu
>         Attachments: HBASE-9489.patch, HBASE-9489_v2.patch
>
>
> As we need to merge index region along with user region we need the hooks 
> before and after setting PONR in region merge transtion.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to