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

Mike Drob commented on HBASE-18898:
-----------------------------------

Another benefit is that a single function can be annotated as PRE_PUT, 
PRE_DELETE, etc, if there is duplicative functionality.

I agree with Andrew that we can follow the JAX-RS model here, and don't have to 
enforce particular method signatures. The consumers can opt in to what they 
want, see similar at 
https://github.com/apache/hbase/blob/master/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ExistsResource.java#L59
 where the consumer opts in to get method parameters. This is much probably 
much easier to do using a real DI framework, I don't want to see us going down 
this path ourselves...

> Provide way for the core flow to know whether CP implemented each of the hooks
> ------------------------------------------------------------------------------
>
>                 Key: HBASE-18898
>                 URL: https://issues.apache.org/jira/browse/HBASE-18898
>             Project: HBase
>          Issue Type: Improvement
>          Components: Coprocessors, Performance
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>            Priority: Critical
>
> This came as a discussion topic at the tale of HBASE-17732
> Can we have a way in the code (before trying to call the hook) to know 
> whether the user has implemented one particular hook or not? eg: On write 
> related hooks only prePut() might be what the user CP implemented. All others 
> are just dummy impl from the interface. Can we have a way for the core code 
> to know this and avoid the call to other dummy hooks fully? Some times we do 
> some processing for just calling CP hooks (Say we have to make a POJO out of 
> PB object for calling) and if the user CP not impl this hook, we can avoid 
> this extra work fully. The pain of this will be more when we have to later 
> deprecate one hook and add new. So the dummy impl in new hook has to call the 
> old one and that might be doing some extra work normally.
> If the CP f/w itself is having a way to tell this, the core code can make 
> use. What am expecting is some thing like in PB way where we can call 
> CPObject.hasPreXXXX(), then CPObject. preXXXX ().. Should not like asking 
> users to impl this extra ugly thing. When the CP instance is loaded in the 
> RS/HM, that object will be having this info also. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to