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

Sean Busbey commented on HBASE-12972:
-------------------------------------

My understanding of the push for branch-1 was as above: to get Phoenix off of 
internal APIs. Users of the coprocessor APIs should always be aware that 
they're on difficult terrain. That's the trade off for the advantages of being 
in our internals. If our compatibility promises don't provide enough of a 
warning for that, then we should try to do better at education.

I'm all for stability in APIs, but it's untenable to keep IA.Private pieces in 
those parts of the API that are relied on for projects like Phoenix. As a 
community, we are pretty good at recognizing when something might break 
downstream folks; but all of that diligence goes out the window when something 
is labeled IA.Private.

I added the utilities for backwards compatible changes to coprocessors that 
Andrew mentions specifically to avoid impacting Phoenix with the WAL 
refactoring. It is a very blunt instrument. So long as Phoenix is set to move 
to the API changes in 1.1, then I agree with Andrew that the maintenance burden 
of keeping the old API in place isn't worth the benefit.

> Region, a supportable public/evolving subset of HRegion
> -------------------------------------------------------
>
>                 Key: HBASE-12972
>                 URL: https://issues.apache.org/jira/browse/HBASE-12972
>             Project: HBase
>          Issue Type: New Feature
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>             Fix For: 2.0.0, 1.1.0
>
>         Attachments: HBASE-12972-0.98.patch, HBASE-12972.patch, 
> HBASE-12972.patch
>
>
> On HBASE-12566, [~lhofhansl] proposed:
> {quote}
> Maybe we can have a {{Region}} interface that is to {{HRegion}} is what 
> {{Store}} is to {{HStore}}. Store marked with {{@InterfaceAudience.Private}} 
> but used in some coprocessor hooks.
> {quote}
> By example, now coprocessors have to reach into HRegion in order to 
> participate in row and region locking protocols, this is one area where the 
> functionality is legitimate for coprocessors but not for users, so an 
> in-between interface make sense.
> In addition we should promote {{Store}}'s interface audience to 
> LimitedPrivate(COPROC).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to