You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2017/05/26 21:30:04 UTC

[jira] [Commented] (PHOENIX-3892) Allow regionobserver to optionally skip postPut/postDelete when postBatchMutate was called

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

Andrew Purtell commented on PHOENIX-3892:
-----------------------------------------

bq. Remove the single hooks and always only call batch hooks (with a default wrapper for the single hooks).

Neither removing single hooks nor removing the batch hooks can be done without consequence that can't be addressed with wrappers or default methods. We are here because already we tried to make multi backwards compatible with coprocessors that only implemented single hooks (at the time). We can propose breaking the world. If so then we decide how best to break it. 

As alternative:

bq. Allow some state to be passed per operation.

We can change the upcall method signatures independent of coprocessor API signatures. Should be possible to introduce a per operation context object, pass it through as a parameter, have the coprocessorhost insert a reference to this into the upcall context (ObserverContext), and then the coprocessor can optionally take advantage of it. We would need to introduce an additional getter-setter pair to ObserverContext. 

> Allow regionobserver to optionally skip postPut/postDelete when postBatchMutate was called
> ------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-3892
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3892
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>
> Right now a RegionObserver can only statically implement one or the other. In scenarios where we need to work sometimes on the single postPut and postDelete hooks and sometimes on the batchMutate hooks, there is currently no place to convey this information to the single hooks. I.e. the work has been done in the batch, skip the single hooks.
> There are various solutions:
> 1. Allow some state to be passed _per operation_.
> 2. Remove the single hooks and always only call batch hooks (with a default wrapper for the single hooks).
> 3. more?
> [~apurtell], what we had discussed a few days back.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)