hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Drob (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18898) Provide way for the core flow to know whether CP implemented each of the hooks
Date Mon, 16 Oct 2017 19:50:00 GMT

    [ 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

View raw message