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

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

{quote}
bq. 'm treating introduction of the Region interface as a singularity of sorts 
for coprocessors: neither source nor binary compatibility will be maintained. I 
don't see the harm in a singularity, HRegion isn't supported, that's the point 
of this work... to replace it with something that is. However, after there is a 
first workable patch if it's not too onerous to make addtional changes that 
keep source or binary compatibility then we can do that.

Let's discuss.
{quote}

We just started having a compatibility statement, so I'd really like to avoid 
breaking it right away. What's the timeline for Phoenix 1.0? Do we have time to 
get a HBase 1.1.0 out?

I haven't seen a discussion of how we interpret the "add new feature" part of 
semver, so my apologies if I've missed it. My own interpretation is that the 
addition of an API like Region qualifies, since a user that built on it 
wouldn't be able to go back to the 1.0.0 release without things breaking.

What if we marked Region LimitedPrivate / Unstable in 1.0.z? We say that those 
things may break in patch releases, so someone following our compatibility 
guidelines wouldn't have an expectation that they can rely on it and still go 
back to 1.0.0. We could mark it Evolving (or Stable or whatever you please) in 
1.1.0+.

With that change, we could do similar overloading and runtime checking to that 
done in HBASE-10378 to make sure we keep our compat promises.

> 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.0.1, 1.1.0, 0.98.11
>
>         Attachments: HBASE-12972-0.98.patch, HBASE-12972-0.98.patch, 
> HBASE-12972-0.98.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