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

Reply via email to