[ https://issues.apache.org/jira/browse/HBASE-23304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16993699#comment-16993699 ]
Bharath Vissapragada edited comment on HBASE-23304 at 12/19/19 12:59 AM: ------------------------------------------------------------------------- Following is the information needed by clients during connection init and the corresponding RPC endpoints added by the patch. # clusterid - GetClusterId(GetClusterIdRequest) -> (GetClusterIdResponse) # activemaster - GetActiveMaster(GetActiveMasterRequest) -> (GetActiveMasterResponse) # metalocations - GetMetaRegionLocations(GetMetaRegionLocationsRequest) -> (GetMetaRegionLocationsResponse) Given these are new service endpoints, we need to consider some upgrade scenarios. * old client -> old server works (duh!) * old client -> new server works (backwards compatible since the patch does not change any existing RPC signatures) * new client -> old server - *does not work*, the channel will be closed on error because the end points it is looking up would still not be implemented on the server side. (note: this is updated after Andrew's next comment) * new client -> new server works (duh!) Given this compatibility matrix, * Client-server compatibility - clients and servers are *not* allowed to upgrade out of sync. Servers should be upgraded first before upgrading the clients. * Server-server compatibility - unaffected. * File format compatibility - unaffected. * Client API compatibility - unaffected. * Client binary compatibility - unaffected. (only configuration changes needed) * Server side limited API compatibility - unaffected. * Dependency compatibility - unaffected. was (Author: bharathv): Following is the information needed by clients during connection init and the corresponding RPC endpoints added by the patch. # clusterid - GetClusterId(GetClusterIdRequest) -> (GetClusterIdResponse) # activemaster - GetActiveMaster(GetActiveMasterRequest) -> (GetActiveMasterResponse) # metalocations - GetMetaRegionLocations(GetMetaRegionLocationsRequest) -> (GetMetaRegionLocationsResponse) Given these are new service endpoints, we need to consider some upgrade scenarios. * old client -> old server works (duh!) * old client -> new server works (backwards compatible since the patch does not change any existing RPC signatures) * old client -> new server - *does not work*, the channel will be closed on error because the end points it is looking up would still not be implemented on the server side. * new client -> new server works (duh!) Given this compatibility matrix, * Client-server compatibility - clients and servers are *not* allowed to upgrade out of sync. Servers should be upgraded first before upgrading the clients. * Server-server compatibility - unaffected. * File format compatibility - unaffected. * Client API compatibility - unaffected. * Client binary compatibility - unaffected. (only configuration changes needed) * Server side limited API compatibility - unaffected. * Dependency compatibility - unaffected. > Implement RPCs needed for master based registry > ----------------------------------------------- > > Key: HBASE-23304 > URL: https://issues.apache.org/jira/browse/HBASE-23304 > Project: HBase > Issue Type: Sub-task > Components: master > Affects Versions: 3.0.0 > Reporter: Bharath Vissapragada > Assignee: Bharath Vissapragada > Priority: Major > > We need to implement RPCs on masters needed by client to fetch information > like clusterID, active master server name, meta locations etc. These RPCs are > used by clients during connection init. -- This message was sent by Atlassian Jira (v8.3.4#803005)