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