Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-18431

Mitigate compatibility concerns between branch-1.3 and branch-1.4

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • None
    • 1.4.0, 2.0.0
    • None
    • None
    • Reviewed

    Description

      There are compatibility concerns with branch-1.4.

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

      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.

      Attachments

        1. HBASE-18431-branch-2-WIP.patch
          276 kB
          Andrew Kyle Purtell
        2. HBASE-18431-branch-1.patch
          902 kB
          Andrew Kyle Purtell
        3. HBASE-18431-branch-1.4.patch
          902 kB
          Andrew Kyle Purtell

        Activity

          People

            apurtell Andrew Kyle Purtell
            apurtell Andrew Kyle Purtell
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: