001/** 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018package org.apache.hadoop.hbase.client; 019 020import java.io.Closeable; 021import java.util.concurrent.CompletableFuture; 022 023import org.apache.hadoop.hbase.RegionLocations; 024import org.apache.hadoop.hbase.ServerName; 025import org.apache.yetus.audience.InterfaceAudience; 026 027/** 028 * Implementations hold cluster information such as this cluster's id, location of hbase:meta, etc.. 029 * All stuffs that may be related to zookeeper at client side are placed here. 030 * <p> 031 * Internal use only. 032 */ 033@InterfaceAudience.Private 034interface AsyncRegistry extends Closeable { 035 036 /** 037 * Get the location of meta region. 038 */ 039 CompletableFuture<RegionLocations> getMetaRegionLocation(); 040 041 /** 042 * Should only be called once. 043 * <p> 044 * The upper layer should store this value somewhere as it will not be change any more. 045 */ 046 CompletableFuture<String> getClusterId(); 047 048 /** 049 * Get the number of 'running' regionservers. 050 */ 051 CompletableFuture<Integer> getCurrentNrHRS(); 052 053 /** 054 * Get the address of HMaster. 055 */ 056 CompletableFuture<ServerName> getMasterAddress(); 057 058 /** 059 * Get the info port of HMaster. 060 */ 061 CompletableFuture<Integer> getMasterInfoPort(); 062 063 /** 064 * Closes this instance and releases any system resources associated with it 065 */ 066 @Override 067 void close(); 068}