[ https://issues.apache.org/jira/browse/HBASE-19099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16226087#comment-16226087 ]
Guanghao Zhang commented on HBASE-19099: ---------------------------------------- [~apurtell] Thanks for you explanation. Let's resolve this in HBASE-18626. > Evaluate the remaining API compatibility concerns between branch-1.3 and > branch-1.4 / branch-1 > ---------------------------------------------------------------------------------------------- > > Key: HBASE-19099 > URL: https://issues.apache.org/jira/browse/HBASE-19099 > Project: HBase > Issue Type: Task > Affects Versions: 1.4.0, 1.5.0 > Reporter: Andrew Purtell > Assignee: Andrew Purtell > Priority: Blocker > Fix For: 1.4.0, 1.5.0 > > > For discussion, here are the remaining compatibility concerns you will > encounter upon moving up from 1.3 to 1.4: > The below all relate to source level compatibility. Recompilation of a client > program may be terminated with the message "class C is not abstract and does > not override abstract method M in TYPE". According to our compatibility > guidelines we are allowed to add methods to interfaces, so these are ALLOWED. > Please let me know if you disagree. > package org.apache.hadoop.hbase.client > interface Admin > * Abstract method clearDeadServers ( List<ServerName> ) has been added to > this interface. > * Abstract method cloneSnapshot ( String, TableName, boolean ) has been added > to this interface. > * Abstract method isCleanerChoreEnabled ( ) has been added to this interface. > * Abstract method isMasterInMaintenanceMode ( ) has been added to this > interface. > * Abstract method listDeadServers ( ) has been added to this interface. > * Abstract method restoreSnapshot ( String, boolean, boolean ) has been added > to this interface. > * Abstract method runCleanerChore ( ) has been added to this interface. > * Abstract method setCleanerChoreRunning ( boolean ) has been added to this > interface. > package org.apache.hadoop.hbase.client > interface ResultScanner > * Abstract method renewLease ( ) has been added to this interface. > * Abstract method getScanMetrics ( ) has been added to this interface. > package org.apache.hadoop.hbase.client > interface Table > * Abstract method getReadRpcTimeout ( ) has been added to this interface. > * Abstract method getWriteRpcTimeout ( ) has been added to this interface. > * Abstract method setReadRpcTimeout ( int ) has been added to this interface. > * Abstract method setWriteRpcTimeout ( int ) has been added to this interface. > package org.apache.hadoop.hbase.replication > interface ReplicationPeer > * Abstract method getPeerBandwidth ( ) has been added to this interface. > * Abstract method trackPeerConfigChanges ( ReplicationPeerConfigListener ) > has been added to this interface. > package org.apache.hadoop.hbase.coprocessor > interface MasterCoprocessorEnvironment > * Abstract method getMetricRegistryForMaster ( ) has been added to this > interface. > package org.apache.hadoop.hbase.coprocessor > interface MasterObserver > * Abstract method postAddRSGroup ( > ObserverContext<MasterCoprocessorEnvironment>, String ) has been added to > this interface. > * Abstract method postBalanceRSGroup ( > ObserverContext<MasterCoprocessorEnvironment>, String, boolean ) has been > added to this interface. > * Abstract method postClearDeadServers ( > ObserverContext<MasterCoprocessorEnvironment> ) has been added to this > interface. > * Abstract method postListDeadServers ( > ObserverContext<MasterCoprocessorEnvironment> ) has been added to this > interface. > * Abstract method postMoveServers ( > ObserverContext<MasterCoprocessorEnvironment>, Set<Address>, String ) has > been added to this interface. > * Abstract method postMoveServersAndTables ( > ObserverContext<MasterCoprocessorEnvironment>, Set<Address>, Set<TableName>, > String ) has been added to this interface. > * Abstract method postMoveTables ( > ObserverContext<MasterCoprocessorEnvironment>, Set<TableName>, String ) has > been added to this interface. > * Abstract method postRemoveRSGroup ( > ObserverContext<MasterCoprocessorEnvironment>, String ) has been added to > this interface. > * Abstract method preAddRSGroup ( > ObserverContext<MasterCoprocessorEnvironment>, String ) has been added to > this interface. > * Abstract method preBalanceRSGroup ( > ObserverContext<MasterCoprocessorEnvironment>, String ) has been added to > this interface. > * Abstract method preClearDeadServers ( > ObserverContext<MasterCoprocessorEnvironment> ) has been added to this > interface. > * Abstract method preListDeadServers ( > ObserverContext<MasterCoprocessorEnvironment> ) has been added to this > interface. > * Abstract method preMoveServers ( > ObserverContext<MasterCoprocessorEnvironment>, Set<Address>, String ) has > been added to this interface. > * Abstract method preMoveServersAndTables ( > ObserverContext<MasterCoprocessorEnvironment>, Set<Address>, Set<TableName>, > String ) has been added to this interface. > * Abstract method preMoveTables ( > ObserverContext<MasterCoprocessorEnvironment>, Set<TableName>, String ) has > been added to this interface. > * Abstract method preRemoveRSGroup ( > ObserverContext<MasterCoprocessorEnvironment>, String ) has been added to > this interface. > package org.apache.hadoop.hbase.coprocessor > interface RegionCoprocessorEnvironment > * Abstract method getMetricRegistryForRegionServer ( ) has been added to this > interface. > package org.apache.hadoop.hbase.coprocessor > interface RegionObserver > * Abstract method postCommitStoreFile ( > ObserverContext<RegionCoprocessorEnvironment>, byte[ ], Path, Path ) has been > added to this interface. > * Abstract method preCommitStoreFile ( > ObserverContext<RegionCoprocessorEnvironment>, byte[ ], List<Pair<Path,Path>> > ) has been added to this interface. > * Abstract method preCompactScannerOpen ( > ObserverContext<RegionCoprocessorEnvironment>, Store, List<?>, ScanType, > long, InternalScanner, CompactionRequest, long ) has been added to this > interface. > * Abstract method preFlushScannerOpen ( > ObserverContext<RegionCoprocessorEnvironment>, Store, KeyValueScanner, > InternalScanner, long ) has been added to this interface. > package org.apache.hadoop.hbase.coprocessor > interface WALCoprocessorEnvironment > * Abstract method getMetricRegistryForRegionServer ( ) has been added to this > interface. > package org.apache.hadoop.hbase.ipc > class RpcScheduler > * Abstract method getActiveReadRpcHandlerCount ( ) has been added to this > class. > * Abstract method getActiveScanRpcHandlerCount ( ) has been added to this > class. > * Abstract method getActiveWriteRpcHandlerCount ( ) has been added to this > class. > * Abstract method getReadQueueLength ( ) has been added to this class. > * Abstract method getScanQueueLength ( ) has been added to this class. > * Abstract method getWriteQueueLength ( ) has been added to this class. > package org.apache.hadoop.hbase.regionserver > interface Region > * Abstract method closeRegionOperation ( Region.Operation ) has been added to > this interface. > * Abstract method waitForFlushes ( ) has been added to this interface. > package org.apache.hadoop.hbase.replication > interface ReplicationEndpoint 1 > * Added super-interface ReplicationPeerConfigListener. (Added methods.) > . > . > AsyncRpcClient has been removed. It was not Public. This change is ALLOWED. > package org.apache.hadoop.hbase.ipc > class AsyncRpcClient > . > . > There are also changes to the LimitedPrivate interface Store. We previously > discussed this, and solicited and received feedback from the Phoenix project > saying they do not represent a problem, so the changes will be ALLOWED. > package org.apache.hadoop.hbase.regionserver > interface Store > * Abstract method add ( Iterable<Cell> ) has been added to this interface. > * Abstract method bulkLoadHFile ( byte[ ], String, Path ) has been added to > this interface. > * Abstract method getScanners ( List<StoreFile>, boolean, boolean, boolean, > boolean, ScanQueryMatcher, byte[ ], byte[ ], long, boolean ) has been added > to this interface. > * Abstract method getScanners ( boolean, boolean, boolean, boolean, > ScanQueryMatcher, byte[ ], byte[ ], long ) has been added to this interface. > * Abstract method upsert ( Iterable<Cell>, long, List<Cell> ) has been added > to this interface. > * Abstract method bulkLoadHFile ( String, long ) has been removed from this > interface. > * Abstract method getScanners ( List<StoreFile>, boolean, boolean, boolean, > boolean, ScanQueryMatcher, byte[ ], byte[ ], long, boolean ) has been removed > from this interface. > * Abstract method getScanners ( boolean, boolean, boolean, boolean, > ScanQueryMatcher, byte[ ], byte[ ], long ) has been removed from this > interface. > * Abstract method upsert ( Iterable<Cell>, long ) has been removed from this > interface. > . > . > A number of configuration constants were (re)moved from SimpleRpcScheduler, > tagged LimitedPrivate. I think these can be ALLOWED. > package org.apache.hadoop.hbase.ipc > class SimpleRpcScheduler > Removed constants > - CALL_QUEUE_CODEL_DEFAULT_INTERVAL > - CALL_QUEUE_CODEL_DEFAULT_LIFO_THRESHOLD > - CALL_QUEUE_CODEL_DEFAULT_TARGET_DELAY > - CALL_QUEUE_CODEL_INTERVAL > - CALL_QUEUE_CODEL_LIFO_THRESHOLD > - CALL_QUEUE_CODEL_TARGET_DELAY > - CALL_QUEUE_HANDLER_FACTOR_CONF_KEY > - CALL_QUEUE_READ_SHARE_CONF_KEY > - CALL_QUEUE_SCAN_SHARE_CONF_KEY > - CALL_QUEUE_TYPE_CODEL_CONF_VALUE > - CALL_QUEUE_TYPE_CONF_DEFAULT > - CALL_QUEUE_TYPE_CONF_KEY > - CALL_QUEUE_TYPE_DEADLINE_CONF_VALUE > - CALL_QUEUE_TYPE_FIFO_CONF_VALUE > - QUEUE_MAX_CALL_DELAY_CONF_KEY > . > . > Two constants were removed from Public class TableInputFormatBase. I think > these are internal implementation details and so removal can be ALLOWED, but > we could put them back if need be. > package org.apache.hadoop.hbase.mapreduce > class TableInputFormatBase > Removed constants > - INPUT_AUTOBALANCE_MAXSKEWRATIO > - TABLE_ROW_TEXTKEY -- This message was sent by Atlassian JIRA (v6.4.14#64029)