[ 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)