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

stack commented on HBASE-15071:
-------------------------------

[~apurtell]
bq.  The coprocessor says it has taken care of everything, time to return back 
to the client taking no further action. 

The above blanket statement tears when hung on our current API. If the method 
is to return a procedure id -- i.e. it is an async call and the id of the 
precedure that the method started/added to the procedure work queue -- then 
what are we to do in this case when CP says bypass? (See create/delete/modify 
NS). Currently there is no such thing as a non-procedure identifier. We could 
add one but the fact that a CP can call 'bypass' on this method remains 
nonsense (I suppose the CP could schedule the procedure itself, somehow, and 
thereafter manage all interaction -- but lets not go here). This is one 
example. There are others including the one where CP says bypass and then we 
return an empty response when what is probably intended is that we somehow 
return a response from CP's pre-call (only in most cases, there is no mechanism 
to do so).

> Cleanup bypass semantic in MasterCoprocessorHost
> ------------------------------------------------
>
>                 Key: HBASE-15071
>                 URL: https://issues.apache.org/jira/browse/HBASE-15071
>             Project: HBase
>          Issue Type: Task
>          Components: Coprocessors
>    Affects Versions: 2.0.0
>            Reporter: stack
>            Priority: Blocker
>
> Lets decide on this one before we release 2.0.0.
> A bunch of methods in MasterCoprocessorHost on the 'pre' step allow returning 
> true which indicates the method invocation is not to proceed.
> Not all 'pre' steps do this. Just some.
> Seems a little arbitrary.
> How we skip out if we are not proceed with the invocation is also a little 
> arbitrary.
> When a deleteColumn call is supposed to skip out, it returns a -1, a 
> non-procId. If we are to skip a balance call, we log that CP said skip and 
> then return false to indicate the balancer did not run (why?). Elsewhere we 
> just exit silently. In createNamespace we used to exit silently but 
> HBASE-14888 just changed it so we throw a BypassCoprocessorException 
> instead... 
> Lets make them all work the same way.
> (This issue comes of chat w/ Matteo)



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

Reply via email to