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

Gary Helmling commented on HBASE-10161:
---------------------------------------

I understand the need for the fixes here and the new post replay hook, but I'd 
like to inject the consideration if there is some way we can make the 
implications or intent clearer for potential coprocessor developers.  
postOpen() was used for region coprocessor initialization because it seemed to 
be the right moment in the region lifecycle to initialize things.  But it seems 
to me like we should consider starting to create more of a separation between 
region lifecycle and coprocessor lifecycle.  My concern is that we're even 
further implicitly tying coprocessor lifecycle further into implementation 
details of the region lifecycle, and I think many coprocessor authors and 
unlikely to consider "I need to wait for region recovery and log replay to 
complete if necessary".  I think they're more likely to be concerned with 
"initialize my coprocessor from the available data when we're ready to go".

If others agree, maybe we should move this discussion into a new JIRA, but 
should we consider adding a new lifecycle-targeted RegionObserver hook, 
something like initializeWhenAvailable(), to be called only replay (and 
whatever new steps/requirements we add in the future) are complete?

> [AccessController] Tolerate regions in recovery
> -----------------------------------------------
>
>                 Key: HBASE-10161
>                 URL: https://issues.apache.org/jira/browse/HBASE-10161
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.98.0, 0.99.0
>            Reporter: Andrew Purtell
>            Assignee: Anoop Sam John
>            Priority: Blocker
>             Fix For: 0.98.0
>
>
> AccessController fixes for the issue also affecting VisibilityController 
> described on HBASE-10148. Coprocessors that initialize in postOpen upcalls 
> must check if the region is still in recovery and defer initialization until 
> recovery is complete. We need to add a new CP hook for post recovery upcalls 
> and modify existing CPs to defer initialization until this new hook as needed.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to