You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2017/10/16 22:11:00 UTC
[jira] [Comment Edited] (HBASE-18898) Provide way for the core flow
to know whether CP implemented each of the hooks
[ https://issues.apache.org/jira/browse/HBASE-18898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16206666#comment-16206666 ]
Andrew Purtell edited comment on HBASE-18898 at 10/16/17 10:10 PM:
-------------------------------------------------------------------
I agree with [~mdrob] comments above. Often in JAX-RS programming you can use one method to implement for multiple annotations. The flexibility is attractive. I also agree it's nice not to need required method signatures. Most of our CP compat breaks have been addition of methods to interfaces or modification of method signatures. Both types of incompatibility would be much less likely to occur. We would implement the wiring up of code to framework guided by annotations and variations in the shape of interface/classes and method signatures would not be a concern any longer. The long term maintenance burdens for both us and implementers would be lessened. I also agree that annotating method parameters and wiring them up may be a step too far without a real DI framework, but we should still look into it.
was (Author: apurtell):
I agree with [~mdrob] comments above. Often in JAX-RS programming you can use one method to implement for multiple annotations. The flexibility is attractive. I also agree it's nice not to need required method signatures. Most of our CP compat breaks have been addition of methods or modification of method signatures. Both types of incompatibility would be much less likely to occur. The long term maintenance burdens for both us and implementers would be lessened. I also agree that annotating method parameters and wiring them up may be a step too far without a real DI framework, but we should still look into it.
> 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)