[
https://issues.apache.org/jira/browse/HBASE-12566?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14223740#comment-14223740
]
Sean Busbey commented on HBASE-12566:
-------------------------------------
HRegion is pretty internal and I'm not sure we should be opening it up more,
even to LimitedPrivate. According to our soon-to-be compat guide, doing this
would mean we wouldn't change it within a minor version, which is a big
limitation. I get that through the CoprocessorEnvironment coprocessors can get
some internal objects that we list as IA.Private. I've always taken the
explicit scoping of those internals (like HRegoin and WAL) to mean that
implementers were in hairy territory and should take care.
Additionally, IA.LimitedPrivate notation wouldn't have stopped HBASE-12550 from
breaking Phoenix since that change was to a package-scoped method.
Could we instead modify an already LimitedPrivate(PHOENIX) api somewhere else?
> HRegion should have an InterfaceAudience of LimitedPrivate(PHOENIX)
> -------------------------------------------------------------------
>
> Key: HBASE-12566
> URL: https://issues.apache.org/jira/browse/HBASE-12566
> Project: HBase
> Issue Type: Bug
> Reporter: Andrew Purtell
> Fix For: 2.0.0, 0.98.9, 0.99.2
>
>
> I've discovered after HBASE-12550 that Phoenix has a class that was broken by
> a change to a package scoped method in HRegion:
> {code}
> diff --git
> a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
> b/hbase-server/src/main/java/org/apache/hadoop/hbase/reg
> index 39a9fdc..3377e6b 100644
> ---
> a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
> +++
> b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
> @@ -4628,11 +4628,12 @@ public class HRegion implements HeapSize { // ,
> Writable{
> /**
> * Create a daughter region from given a temp directory with the region
> data.
> * @param hri Spec. for daughter region to open.
> + * @param expectedReferenceFileCount
> * @throws IOException
> */
> - HRegion createDaughterRegionFromSplits(final HRegionInfo hri) throws
> IOException {
> + HRegion createDaughterRegionFromSplits(final HRegionInfo hri, int
> expectedReferenceFileCount) throws IOException {
> // Move the files from the temporary .splits to the final /table/region
> directory
> - fs.commitDaughterRegion(hri);
> + fs.commitDaughterRegion(hri, expectedReferenceFileCount);
> {code}
> We should change the HRegion InterfaceAudience to LimitedPrivate(COPROC,
> PHOENIX).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)