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)

Reply via email to