Andrew Purtell created HBASE-18431:
--------------------------------------
Summary: 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
Fix For: 1.4.0
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 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. These changes should
be mitigated with compatibility shims:
\\
* 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.
* 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)