You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Reid Chan (JIRA)" <ji...@apache.org> on 2018/03/01 03:51:00 UTC

[jira] [Comment Edited] (HBASE-20109) Add Admin#getMasterLocation API for lightweight discovery of the active master location

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

Reid Chan edited comment on HBASE-20109 at 3/1/18 3:50 AM:
-----------------------------------------------------------

{code}
  default ServerName getMaster() throws IOException {
    return getClusterMetrics(EnumSet.of(Option.MASTER)).getMasterName();
  }
{code}
Ya, it's lightweight, {{ServerName}} also contains host and port.
But i doubt that the option feature is in branch-1?


was (Author: reidchan):
{code}
  default ServerName getMaster() throws IOException {
    return getClusterMetrics(EnumSet.of(Option.MASTER)).getMasterName();
  }
{code}
Ya, it's lightweight, {ServerName} also contains host and port.
But i doubt that the option feature is in branch-1?

> Add Admin#getMasterLocation API for lightweight discovery of the active master location
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-20109
>                 URL: https://issues.apache.org/jira/browse/HBASE-20109
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client
>    Affects Versions: 1.4.2
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>            Priority: Minor
>             Fix For: 2.0.0, 1.5.0
>
>
> Right now the only public API available to the client to learn the server name of the active master is Admin#getClusterStatus#getMaster, returning ServerName. On a cluster of any size getClusterStatus is expensive, especially if used only to retrieve the active master name. 
> Let's add a simple API 
> {code}
> ServerName Admin#getMasterLocation()
> {code}
> for lightweight discovery of the active master location. This makes sense because, weirdly, Admin already has a method getMasterInfoPort(), returning int. 
> Internally the client has a notion of the active master because there is a connection open to it, or one that can be reopened, or if for some reason it's not easy to make a ServerName for that state, the ServerName can be deserialized out of the znode tracking the active master location.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)