You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Geoffrey Jacoby (JIRA)" <ji...@apache.org> on 2019/07/01 22:32:00 UTC

[jira] [Commented] (HBASE-18127) Enable state to be passed between the region observer coprocessor hook calls

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

Geoffrey Jacoby commented on HBASE-18127:
-----------------------------------------

[~abhishek.chouhan] [~stack] [~anoop.hbase] [~apurtell] - Curious what the status of this JIRA is. Over on HBASE-22622 and HBASE-22623, I'm working on adding the capability for coprocessors to annotate extra key/values into the WAL via a new hook. (The motivation is to let Phoenix record some of its own metadata into the WAL so it can be accessed by custom replication endpoints.) 

Since Phoenix already works around the lack of inter-coprocessor call state by having its own coprocessor implementations write an object to thread-local storage, I could theoretically manage without this JIRA, but the patch here is a cleaner implementation than what Phoenix currently does, and would make the coprocessor hook I'm creating more broadly useful for non-Phoenix use cases. 

Looks like when the discussion had ended there was an open question about whether the patch could and/or should be genericized beyond the mutation pipeline, and whether or not it was appropriate to use thread-local storage. Eighteen months later, what's the current thought? 

I'm happy to help with implementation (unless [~abhishek.chouhan] wants to take it back up of course) if we can agree on the design.

> Enable state to be passed between the region observer coprocessor hook calls
> ----------------------------------------------------------------------------
>
>                 Key: HBASE-18127
>                 URL: https://issues.apache.org/jira/browse/HBASE-18127
>             Project: HBase
>          Issue Type: New Feature
>            Reporter: Lars Hofhansl
>            Assignee: Abhishek Singh Chouhan
>            Priority: Major
>         Attachments: HBASE-18127.master.001.patch, HBASE-18127.master.002.patch, HBASE-18127.master.002.patch, HBASE-18127.master.003.patch, HBASE-18127.master.004.patch, HBASE-18127.master.005.patch, HBASE-18127.master.005.patch, HBASE-18127.master.006.patch
>
>
> Allow regionobserver to optionally skip postPut/postDelete when postBatchMutate was called.
> 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
(v7.6.3#76005)