hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Elser (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-19099) Evaluate the remaining compatibility concerns between branch-1.3 and branch-1.4 / branch-1
Date Sat, 28 Oct 2017 00:02:23 GMT

    [ https://issues.apache.org/jira/browse/HBASE-19099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16223066#comment-16223066
] 

Josh Elser commented on HBASE-19099:
------------------------------------

bq. Two constants were removed from Public class TableInputFormatBase

These are the only two that caught my eye. Looks like they're configuration that's now invalid
after the changes made by HBASE-16894 -- autobalancing regions across Mappers is only a factor
of Region size now. I have to assume that since we committed the change in functionality,
it's a "net-improvement" kind of scenario.

I think release notes on HBASE-16894 would be sufficient to justify the constants being removed
-- the compilation error is a good "heads up" to users who might not otherwise realize that
the implementation changed.

+1 on the rest. Thanks for the leg work, Andrew.

> Evaluate the remaining 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)

Mime
View raw message