[
https://issues.apache.org/jira/browse/HBASE-11125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14000647#comment-14000647
]
Andrew Purtell commented on HBASE-11125:
----------------------------------------
Related requests/advice from Vladimir Rodionov on @dev:
{quote}
1) Have default implementations (abstract classes) for every interface from
Coprocessor API.
2) Advise coprocessor users not to implement interface directly but sub class
default impl.
3) Preserve backward compatibility by adding only new hooks/methods
4) DO NOT CHANGE existing API (no method renaming, method parameter type
changes etc)
5) Have a regression tests to check backward compatibility.
{quote}
> Introduce a higher level interface for registering interest in coprocessor
> upcalls
> ----------------------------------------------------------------------------------
>
> Key: HBASE-11125
> URL: https://issues.apache.org/jira/browse/HBASE-11125
> Project: HBase
> Issue Type: New Feature
> Reporter: Andrew Purtell
> Priority: Critical
> Fix For: 0.99.0, 1.0.0
>
>
> We should introduce a higher level interface for managing the registration of
> 'user' code for execution from the low level hooks. It should not be
> necessary for coprocessor implementers to learn the universe of available low
> level hooks and the subtleties of their placement within HBase core code.
> Instead the higher level API should allow the implementer to describe their
> intent and then this API should choose the appropriate low level hook
> placement.
> A very desirable side effect is a layer of indirection between coprocessor
> implementers and the actual hooks. This will address the perennial complaint
> that the low level hooks change too much from release to release, as recently
> discussed during the RM panel at HBaseCon. If we try to avoid changing the
> particular placement and arguments of hook functions in response to those
> complaints, this can be an onerous constraint on necessary internals
> evolution. Instead we can direct coprocessor implementers to consider the new
> API and provide the same interface stability guarantees there as we do for
> client API,
--
This message was sent by Atlassian JIRA
(v6.2#6252)