Details
-
Task
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
1.4.0
-
None
-
None
Description
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