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

Appy commented on HBASE-18898:
------------------------------

I considered the annotation way earlier, but didn't suggest that because of 
following pros and cons (++ and -- bullets):

w/ annotated methods
++ makes matching logic easier on our side
-- More IA.Public stuff. We'll need a set of enum for each observer, so 6 
total. More compat work. :-)
-- Has to be done before beta1 else postponed till 3.0

w/ method override (i.e. current way)
++ No code changes needed in existing CP implementations
++ Compile time checks instead of runtime failures
++ Internal change only, so no restrictions. Can be done anytime.
-- More matching logic on our side.

What do you say [~apurtell]?


> 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