[
https://issues.apache.org/jira/browse/HBASE-18431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16119295#comment-16119295
]
Andrew Purtell commented on HBASE-18431:
----------------------------------------
I need another day to look at some compilation problems with Phoenix. So far
they look like things our compat policy allows for: private annotated types
(shouldn't have used it), and added methods in interfaces. I haven't finished
enumerating the errors yet.
> Mitigate compatibility concerns between branch-1.3 and branch-1.4
> -----------------------------------------------------------------
>
> Key: HBASE-18431
> URL: https://issues.apache.org/jira/browse/HBASE-18431
> Project: HBase
> Issue Type: Bug
> Reporter: Andrew Purtell
> Assignee: Andrew Purtell
> Priority: Blocker
> Fix For: 1.4.0, 1.5.0
>
> Attachments: HBASE-18431-branch-1.4.patch,
> HBASE-18431-branch-1.patch, HBASE-18431-branch-2-WIP.patch
>
>
> There are compatibility concerns with branch-1.4.
> {noformat}
> Library Name HBase
> Version #1 1.3.1
> Version #2 1.4.0-SNAPSHOT
> Subject Binary Compatibility
> Compatibility - 89.9%
> Added Methods - 305
> Removed Methods - 105
> Problems with Data Types
> High - 23
> Medium - 9
> Low - 21
> {noformat}
> {noformat}
> Library Name HBase
> Version #1 1.3.1
> Version #2 1.4.0-SNAPSHOT
> Subject Source Compatibility
> Compatibility- 86.5%
> Added Methods - 305
> Removed Methods - 105
> Problems with Data Types
> High - 88
> Medium - 0
> Low - 0
> Other Changes in Data Types - 25
> {noformat}
> This report includes HBASE-15816 which hasn't been committed yet. Otherwise
> it's current.
> I'm not generally concerned with added methods.
> The following methods have been added to Public/Evolving interface Table.
> Pointing them out in case it merits review.
> \\
> * Abstract method Table.getReadRpcTimeout ( ) has been added to this
> interface. No effect.
> * Abstract method Table.getWriteRpcTimeout ( ) has been added to this
> interface. No effect.
> * Abstract method Table.setReadRpcTimeout ( int ) has been added to this
> interface. No effect.
> * Abstract method Table.setWriteRpcTimeout ( int ) has been added to this
> interface.
> The Public/Evolving interface Admin has some signature changes equating to
> removed methods. I don't think this is allowed in a minor release.
> \\
> * Abstract method Admin.isSnapshotFinished ( HBaseProtos.SnapshotDescription
> ) has been removed from Admin.
> * Abstract method Admin.snapshot ( String, TableName,
> HBaseProtos.SnapshotDescription.Type ) has been removed from Admin.
> * Abstract method Admin.snapshot ( HBaseProtos.SnapshotDescription ) has been
> removed from Admin.
> * Abstract method Admin.takeSnapshotAsync ( HBaseProtos.SnapshotDescription
> ) has been removed from Admin.
> The LimitedPrivate(CONFIG) interface AsyncRpcClient has been removed. This
> change is debatable but I think we can allow it.
> \\
> * AsyncRpcClient has been removed
> The Public/Evolving class FastLongHistogram has been removed. I don't believe
> this change is allowed in a minor release.
> \\
> * FastLongHistogram has been removed
> Method signatures in LimitedPrivate(COPROC) interfaces MasterObserver and
> RegionObserver have changed, equating to removed methods. The first set of
> changes is due to move of SnapshotDescription from HBaseProtos to
> SnapshotProtos:
> \\
> * Abstract method MasterObserver.postCloneSnapshot (
> ObserverContext<MasterCoprocessorEnvironment>,
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from
> MasterObserver.
> * Abstract method MasterObserver.postDeleteSnapshot (
> ObserverContext<MasterCoprocessorEnvironment>,
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.postListSnapshot (
> ObserverContext<MasterCoprocessorEnvironment>,
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.postRestoreSnapshot (
> ObserverContext<MasterCoprocessorEnvironment>,
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from
> MasterObserver.
> * Abstract method MasterObserver.postSnapshot (
> ObserverContext<MasterCoprocessorEnvironment>,
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from
> MasterObserver.
> * Abstract method MasterObserver.preCloneSnapshot (
> ObserverContext<MasterCoprocessorEnvironment>,
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from
> MasterObserver.
> * Abstract method MasterObserver.preDeleteSnapshot (
> ObserverContext<MasterCoprocessorEnvironment>,
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.preListSnapshot (
> ObserverContext<MasterCoprocessorEnvironment>,
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.preRestoreSnapshot (
> ObserverContext<MasterCoprocessorEnvironment>,
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from
> MasterObserver.
> * Abstract method MasterObserver.preSnapshot (
> ObserverContext<MasterCoprocessorEnvironment>,
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from
> MasterObserver.
> Here, maybe DeleteTracker moved packages?
> \\
> * Abstract method RegionObserver.postInstantiateDeleteTracker (
> ObserverContext<RegionCoprocessorEnvironment>, DeleteTracker ) has been
> removed from RegionObserver.
> The LimitedPrivate(COPROC) interface Store has method signature changes
> equating to removed methods. The changes are debatable. I am thinking we can
> allow them. Anyone implementing their own Stores?
> \\
> * Abstract method Store.bulkLoadHFile ( String, long ) has been removed from
> Store.
> * Abstract method Store.getScanners ( List<StoreFile>, boolean, boolean,
> boolean, boolean, ScanQueryMatcher, byte[ ], byte[ ], long, boolean ) has
> been removed from Store.
> * Abstract method Store.getScanners ( boolean, boolean, boolean, boolean,
> ScanQueryMatcher, byte[ ], byte[ ], long ) has been removed from Store.
> * Abstract method Store.upsert ( Iterable<Cell>, long ) has been removed from
> Store.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)