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.master;
019
020import java.io.IOException;
021import java.net.InetSocketAddress;
022import java.util.ArrayList;
023import java.util.Collection;
024import java.util.Collections;
025import java.util.HashMap;
026import java.util.List;
027import java.util.Map;
028import java.util.Map.Entry;
029import java.util.Optional;
030import java.util.TreeMap;
031import java.util.concurrent.ConcurrentSkipListMap;
032import java.util.concurrent.ThreadLocalRandom;
033import org.apache.hadoop.conf.Configuration;
034import org.apache.hadoop.fs.FileSystem;
035import org.apache.hadoop.hbase.Abortable;
036import org.apache.hadoop.hbase.ChoreService;
037import org.apache.hadoop.hbase.CoordinatedStateManager;
038import org.apache.hadoop.hbase.ExtendedCellScannable;
039import org.apache.hadoop.hbase.PrivateCellUtil;
040import org.apache.hadoop.hbase.ServerName;
041import org.apache.hadoop.hbase.TableDescriptors;
042import org.apache.hadoop.hbase.TableName;
043import org.apache.hadoop.hbase.ZooKeeperConnectionException;
044import org.apache.hadoop.hbase.client.AsyncClusterConnection;
045import org.apache.hadoop.hbase.client.Connection;
046import org.apache.hadoop.hbase.client.RegionInfo;
047import org.apache.hadoop.hbase.client.RegionInfoBuilder;
048import org.apache.hadoop.hbase.client.Result;
049import org.apache.hadoop.hbase.client.Scan;
050import org.apache.hadoop.hbase.client.locking.EntityLock;
051import org.apache.hadoop.hbase.executor.ExecutorService;
052import org.apache.hadoop.hbase.io.hfile.BlockCache;
053import org.apache.hadoop.hbase.ipc.HBaseRpcController;
054import org.apache.hadoop.hbase.ipc.RpcServerInterface;
055import org.apache.hadoop.hbase.keymeta.KeyManagementService;
056import org.apache.hadoop.hbase.keymeta.KeymetaAdmin;
057import org.apache.hadoop.hbase.keymeta.ManagedKeyDataCache;
058import org.apache.hadoop.hbase.keymeta.SystemKeyCache;
059import org.apache.hadoop.hbase.mob.MobFileCache;
060import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager;
061import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager;
062import org.apache.hadoop.hbase.quotas.RegionSizeStore;
063import org.apache.hadoop.hbase.regionserver.FlushRequester;
064import org.apache.hadoop.hbase.regionserver.HRegion;
065import org.apache.hadoop.hbase.regionserver.HeapMemoryManager;
066import org.apache.hadoop.hbase.regionserver.LeaseManager;
067import org.apache.hadoop.hbase.regionserver.MetricsRegionServer;
068import org.apache.hadoop.hbase.regionserver.RegionServerAccounting;
069import org.apache.hadoop.hbase.regionserver.RegionServerServices;
070import org.apache.hadoop.hbase.regionserver.ReplicationSourceService;
071import org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager;
072import org.apache.hadoop.hbase.regionserver.ServerNonceManager;
073import org.apache.hadoop.hbase.regionserver.compactions.CompactionRequester;
074import org.apache.hadoop.hbase.regionserver.regionreplication.RegionReplicationBufferManager;
075import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController;
076import org.apache.hadoop.hbase.security.access.AccessChecker;
077import org.apache.hadoop.hbase.security.access.ZKPermissionWatcher;
078import org.apache.hadoop.hbase.util.Bytes;
079import org.apache.hadoop.hbase.wal.WAL;
080import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
081
082import org.apache.hbase.thirdparty.com.google.protobuf.RpcController;
083import org.apache.hbase.thirdparty.com.google.protobuf.Service;
084import org.apache.hbase.thirdparty.com.google.protobuf.ServiceException;
085
086import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
087import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos;
088import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearCompactionQueuesRequest;
089import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearCompactionQueuesResponse;
090import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearRegionBlockCacheRequest;
091import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearRegionBlockCacheResponse;
092import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearSlowLogResponseRequest;
093import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearSlowLogResponses;
094import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;
095import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;
096import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;
097import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;
098import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactionSwitchRequest;
099import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactionSwitchResponse;
100import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ExecuteProceduresRequest;
101import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ExecuteProceduresResponse;
102import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;
103import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;
104import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetCachedFilesListRequest;
105import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetCachedFilesListResponse;
106import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;
107import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;
108import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoRequest;
109import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse;
110import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionLoadRequest;
111import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionLoadResponse;
112import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetServerInfoRequest;
113import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetServerInfoResponse;
114import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetStoreFileRequest;
115import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetStoreFileResponse;
116import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.OpenRegionRequest;
117import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.OpenRegionResponse;
118import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryRequest;
119import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryResponse;
120import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.RollWALWriterRequest;
121import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.RollWALWriterResponse;
122import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.StopServerRequest;
123import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.StopServerResponse;
124import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateConfigurationRequest;
125import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateConfigurationResponse;
126import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateFavoredNodesRequest;
127import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateFavoredNodesResponse;
128import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.WarmupRegionRequest;
129import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.WarmupRegionResponse;
130import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;
131import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest;
132import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileResponse;
133import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest;
134import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadResponse;
135import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest;
136import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse;
137import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.GetRequest;
138import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.GetResponse;
139import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest;
140import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest;
141import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse;
142import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest;
143import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadResponse;
144import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest;
145import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanResponse;
146import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;
147import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.BooleanMsg;
148import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.EmptyMsg;
149import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ManagedKeyEntryRequest;
150import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaSnapshotsRequest;
151import org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaSnapshotsResponse;
152
153/**
154 * A mock RegionServer implementation. Use this when you can't bend Mockito to your liking (e.g.
155 * return null result when 'scanning' until master timesout and then return a coherent meta row
156 * result thereafter. Have some facility for faking gets and scans. See setGetResult(byte[], byte[],
157 * Result) for how to fill the backing data store that the get pulls from.
158 */
159class MockRegionServer implements AdminProtos.AdminService.BlockingInterface,
160  ClientProtos.ClientService.BlockingInterface, RegionServerServices {
161  private final ServerName sn;
162  private final ZKWatcher zkw;
163  private final Configuration conf;
164
165  /**
166   * Map of regions to map of rows and {@link Result}. Used as data source when
167   * {@link #get(RpcController, ClientProtos.GetRequest)} is called. Because we have a byte key,
168   * need to use TreeMap and provide a Comparator. Use {@link #setGetResult(byte[], byte[], Result)}
169   * filling this map.
170   */
171  private final Map<byte[], Map<byte[], Result>> gets = new TreeMap<>(Bytes.BYTES_COMPARATOR);
172
173  /**
174   * Map of regions to results to return when scanning.
175   */
176  private final Map<byte[], Result[]> nexts = new TreeMap<>(Bytes.BYTES_COMPARATOR);
177
178  /**
179   * Data structure that holds regionname and index used scanning.
180   */
181  class RegionNameAndIndex {
182    private final byte[] regionName;
183    private int index = 0;
184
185    RegionNameAndIndex(final byte[] regionName) {
186      this.regionName = regionName;
187    }
188
189    byte[] getRegionName() {
190      return this.regionName;
191    }
192
193    int getThenIncrement() {
194      int currentIndex = this.index;
195      this.index++;
196      return currentIndex;
197    }
198  }
199
200  /**
201   * Outstanding scanners and their offset into <code>nexts</code>
202   */
203  private final Map<Long, RegionNameAndIndex> scannersAndOffsets = new HashMap<>();
204
205  /**
206   * @param sn Name of this mock regionserver
207   */
208  MockRegionServer(final Configuration conf, final ServerName sn)
209    throws ZooKeeperConnectionException, IOException {
210    this.sn = sn;
211    this.conf = conf;
212    this.zkw = new ZKWatcher(conf, sn.toString(), this, true);
213  }
214
215  /**
216   * Use this method filling the backing data source used by
217   * {@link #get(RpcController, ClientProtos.GetRequest)}
218   * @param regionName the region name to assign
219   * @param row        the row key
220   * @param r          the single row result
221   */
222  void setGetResult(final byte[] regionName, final byte[] row, final Result r) {
223    Map<byte[], Result> value = this.gets.get(regionName);
224    if (value == null) {
225      // If no value already, create one. Needs to be treemap because we are
226      // using byte array as key. Not thread safe.
227      value = new TreeMap<>(Bytes.BYTES_COMPARATOR);
228      this.gets.put(regionName, value);
229    }
230    value.put(row, r);
231  }
232
233  /**
234   * Use this method to set what a scanner will reply as we next through
235   */
236  void setNextResults(final byte[] regionName, final Result[] rs) {
237    this.nexts.put(regionName, rs);
238  }
239
240  @Override
241  public boolean isStopped() {
242    return false;
243  }
244
245  @Override
246  public void abort(String why, Throwable e) {
247    throw new RuntimeException(this.sn + ": " + why, e);
248  }
249
250  @Override
251  public boolean isAborted() {
252    return false;
253  }
254
255  public long openScanner(byte[] regionName, Scan scan) throws IOException {
256    long scannerId = ThreadLocalRandom.current().nextLong();
257    this.scannersAndOffsets.put(scannerId, new RegionNameAndIndex(regionName));
258    return scannerId;
259  }
260
261  public Result next(long scannerId) throws IOException {
262    RegionNameAndIndex rnai = this.scannersAndOffsets.get(scannerId);
263    int index = rnai.getThenIncrement();
264    Result[] results = this.nexts.get(rnai.getRegionName());
265    if (results == null) return null;
266    return index < results.length ? results[index] : null;
267  }
268
269  public Result[] next(long scannerId, int numberOfRows) throws IOException {
270    // Just return one result whatever they ask for.
271    Result r = next(scannerId);
272    return r == null ? null : new Result[] { r };
273  }
274
275  public void close(final long scannerId) throws IOException {
276    this.scannersAndOffsets.remove(scannerId);
277  }
278
279  @Override
280  public void stop(String why) {
281    this.zkw.close();
282  }
283
284  @Override
285  public void addRegion(HRegion r) {
286  }
287
288  @Override
289  public boolean removeRegion(HRegion r, ServerName destination) {
290    return false;
291  }
292
293  @Override
294  public HRegion getRegion(String encodedRegionName) {
295    return null;
296  }
297
298  @Override
299  public Configuration getConfiguration() {
300    return this.conf;
301  }
302
303  @Override
304  public ZKWatcher getZooKeeper() {
305    return this.zkw;
306  }
307
308  @Override
309  public CoordinatedStateManager getCoordinatedStateManager() {
310    return null;
311  }
312
313  @Override
314  public Connection getConnection() {
315    return null;
316  }
317
318  @Override
319  public ServerName getServerName() {
320    return this.sn;
321  }
322
323  @Override
324  public boolean isStopping() {
325    return false;
326  }
327
328  @Override
329  public FlushRequester getFlushRequester() {
330    return null;
331  }
332
333  @Override
334  public CompactionRequester getCompactionRequestor() {
335    return null;
336  }
337
338  @Override
339  public RegionServerAccounting getRegionServerAccounting() {
340    return null;
341  }
342
343  @Override
344  public RegionServerRpcQuotaManager getRegionServerRpcQuotaManager() {
345    return null;
346  }
347
348  @Override
349  public void postOpenDeployTasks(PostOpenDeployContext context) throws IOException {
350  }
351
352  @Override
353  public RpcServerInterface getRpcServer() {
354    return null;
355  }
356
357  @Override
358  public ConcurrentSkipListMap<byte[], Boolean> getRegionsInTransitionInRS() {
359    return null;
360  }
361
362  @Override
363  public FileSystem getFileSystem() {
364    return null;
365  }
366
367  @Override
368  public GetResponse get(RpcController controller, GetRequest request) throws ServiceException {
369    byte[] regionName = request.getRegion().getValue().toByteArray();
370    Map<byte[], Result> m = this.gets.get(regionName);
371    GetResponse.Builder builder = GetResponse.newBuilder();
372    if (m != null) {
373      byte[] row = request.getGet().getRow().toByteArray();
374      builder.setResult(ProtobufUtil.toResult(m.get(row)));
375    }
376    return builder.build();
377  }
378
379  @Override
380  public MutateResponse mutate(RpcController controller, MutateRequest request)
381    throws ServiceException {
382    return null;
383  }
384
385  @Override
386  public ScanResponse scan(RpcController controller, ScanRequest request) throws ServiceException {
387    ScanResponse.Builder builder = ScanResponse.newBuilder();
388    try {
389      if (request.hasScan()) {
390        byte[] regionName = request.getRegion().getValue().toByteArray();
391        builder.setScannerId(openScanner(regionName, null));
392        builder.setMoreResults(true);
393      } else {
394        long scannerId = request.getScannerId();
395        Result result = next(scannerId);
396        if (result != null) {
397          builder.addCellsPerResult(result.size());
398          List<ExtendedCellScannable> results = new ArrayList<>(1);
399          results.add(result);
400          ((HBaseRpcController) controller)
401            .setCellScanner(PrivateCellUtil.createExtendedCellScanner(results));
402          builder.setMoreResults(true);
403        } else {
404          builder.setMoreResults(false);
405          close(scannerId);
406        }
407      }
408    } catch (IOException ie) {
409      throw new ServiceException(ie);
410    }
411    return builder.build();
412  }
413
414  @Override
415  public BulkLoadHFileResponse bulkLoadHFile(RpcController controller, BulkLoadHFileRequest request)
416    throws ServiceException {
417    return null;
418  }
419
420  @Override
421  public ClientProtos.CoprocessorServiceResponse execService(RpcController controller,
422    ClientProtos.CoprocessorServiceRequest request) throws ServiceException {
423    return null;
424  }
425
426  @Override
427  public ClientProtos.MultiResponse multi(RpcController controller, MultiRequest request)
428    throws ServiceException {
429    return null;
430  }
431
432  @Override
433  public GetRegionInfoResponse getRegionInfo(RpcController controller, GetRegionInfoRequest request)
434    throws ServiceException {
435    GetRegionInfoResponse.Builder builder = GetRegionInfoResponse.newBuilder();
436    builder.setRegionInfo(ProtobufUtil.toRegionInfo(RegionInfoBuilder.FIRST_META_REGIONINFO));
437    return builder.build();
438  }
439
440  @Override
441  public GetRegionLoadResponse getRegionLoad(RpcController controller, GetRegionLoadRequest request)
442    throws ServiceException {
443    GetRegionLoadResponse.Builder builder = GetRegionLoadResponse.newBuilder();
444    return builder.build();
445  }
446
447  @Override
448  public ClearCompactionQueuesResponse clearCompactionQueues(RpcController controller,
449    ClearCompactionQueuesRequest request) throws ServiceException {
450    return null;
451  }
452
453  @Override
454  public GetStoreFileResponse getStoreFile(RpcController controller, GetStoreFileRequest request)
455    throws ServiceException {
456    return null;
457  }
458
459  @Override
460  public GetOnlineRegionResponse getOnlineRegion(RpcController controller,
461    GetOnlineRegionRequest request) throws ServiceException {
462    return null;
463  }
464
465  @Override
466  public GetCachedFilesListResponse getCachedFilesList(RpcController controller,
467    GetCachedFilesListRequest request) throws ServiceException {
468    return null;
469  }
470
471  @Override
472  public List<HRegion> getRegions() {
473    return null;
474  }
475
476  @Override
477  public OpenRegionResponse openRegion(RpcController controller, OpenRegionRequest request)
478    throws ServiceException {
479    return null;
480  }
481
482  @Override
483  public WarmupRegionResponse warmupRegion(RpcController controller, WarmupRegionRequest request)
484    throws ServiceException {
485    return null;
486  }
487
488  @Override
489  public CloseRegionResponse closeRegion(RpcController controller, CloseRegionRequest request)
490    throws ServiceException {
491    return null;
492  }
493
494  @Override
495  public FlushRegionResponse flushRegion(RpcController controller, FlushRegionRequest request)
496    throws ServiceException {
497    return null;
498  }
499
500  @Override
501  public CompactionSwitchResponse compactionSwitch(RpcController controller,
502    CompactionSwitchRequest request) throws ServiceException {
503    return null;
504  }
505
506  @Override
507  public CompactRegionResponse compactRegion(RpcController controller, CompactRegionRequest request)
508    throws ServiceException {
509    return null;
510  }
511
512  @Override
513  public ReplicateWALEntryResponse replicateWALEntry(RpcController controller,
514    ReplicateWALEntryRequest request) throws ServiceException {
515    return null;
516  }
517
518  @Override
519  public RollWALWriterResponse rollWALWriter(RpcController controller, RollWALWriterRequest request)
520    throws ServiceException {
521    return null;
522  }
523
524  @Override
525  public GetServerInfoResponse getServerInfo(RpcController controller, GetServerInfoRequest request)
526    throws ServiceException {
527    return null;
528  }
529
530  @Override
531  public StopServerResponse stopServer(RpcController controller, StopServerRequest request)
532    throws ServiceException {
533    return null;
534  }
535
536  @Override
537  public List<HRegion> getRegions(TableName tableName) throws IOException {
538    return null;
539  }
540
541  @Override
542  public LeaseManager getLeaseManager() {
543    return null;
544  }
545
546  @Override
547  public List<WAL> getWALs() throws IOException {
548    return Collections.emptyList();
549  }
550
551  @Override
552  public WAL getWAL(RegionInfo regionInfo) throws IOException {
553    return null;
554  }
555
556  @Override
557  public ExecutorService getExecutorService() {
558    return null;
559  }
560
561  @Override
562  public ChoreService getChoreService() {
563    return null;
564  }
565
566  @Override
567  public SystemKeyCache getSystemKeyCache() {
568    return null;
569  }
570
571  @Override
572  public ManagedKeyDataCache getManagedKeyDataCache() {
573    return null;
574  }
575
576  @Override
577  public KeymetaAdmin getKeymetaAdmin() {
578    return null;
579  }
580
581  @Override
582  public void updateRegionFavoredNodesMapping(String encodedRegionName,
583    List<org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ServerName> favoredNodes) {
584  }
585
586  @Override
587  public InetSocketAddress[] getFavoredNodesForRegion(String encodedRegionName) {
588    return null;
589  }
590
591  @Override
592  public ReplicateWALEntryResponse replay(RpcController controller,
593    ReplicateWALEntryRequest request) throws ServiceException {
594    return null;
595  }
596
597  @Override
598  public UpdateFavoredNodesResponse updateFavoredNodes(RpcController controller,
599    UpdateFavoredNodesRequest request) throws ServiceException {
600    return null;
601  }
602
603  @Override
604  public ServerNonceManager getNonceManager() {
605    return null;
606  }
607
608  @Override
609  public boolean reportRegionStateTransition(RegionStateTransitionContext context) {
610    return false;
611  }
612
613  @Override
614  public boolean registerService(Service service) {
615    return false;
616  }
617
618  @Override
619  public CoprocessorServiceResponse execRegionServerService(RpcController controller,
620    CoprocessorServiceRequest request) throws ServiceException {
621    return null;
622  }
623
624  @Override
625  public UpdateConfigurationResponse updateConfiguration(RpcController controller,
626    UpdateConfigurationRequest request) throws ServiceException {
627    return null;
628  }
629
630  @Override
631  public ClearRegionBlockCacheResponse clearRegionBlockCache(RpcController controller,
632    ClearRegionBlockCacheRequest request) throws ServiceException {
633    return null;
634  }
635
636  @Override
637  public HeapMemoryManager getHeapMemoryManager() {
638    return null;
639  }
640
641  @Override
642  public double getCompactionPressure() {
643    return 0;
644  }
645
646  @Override
647  public ThroughputController getFlushThroughputController() {
648    return null;
649  }
650
651  @Override
652  public double getFlushPressure() {
653    return 0;
654  }
655
656  @Override
657  public MetricsRegionServer getMetrics() {
658    return null;
659  }
660
661  @Override
662  public EntityLock regionLock(List<RegionInfo> regionInfos, String description, Abortable abort)
663    throws IOException {
664    return null;
665  }
666
667  @Override
668  public PrepareBulkLoadResponse prepareBulkLoad(RpcController controller,
669    PrepareBulkLoadRequest request) throws ServiceException {
670    return null;
671  }
672
673  @Override
674  public CleanupBulkLoadResponse cleanupBulkLoad(RpcController controller,
675    CleanupBulkLoadRequest request) throws ServiceException {
676    return null;
677  }
678
679  @Override
680  public SecureBulkLoadManager getSecureBulkLoadManager() {
681    return null;
682  }
683
684  @Override
685  public void unassign(byte[] regionName) throws IOException {
686  }
687
688  @Override
689  public RegionServerSpaceQuotaManager getRegionServerSpaceQuotaManager() {
690    return null;
691  }
692
693  @Override
694  public ExecuteProceduresResponse executeProcedures(RpcController controller,
695    ExecuteProceduresRequest request) throws ServiceException {
696    return null;
697  }
698
699  @Override
700  public ClearSlowLogResponses clearSlowLogsResponses(RpcController controller,
701    ClearSlowLogResponseRequest request) throws ServiceException {
702    return null;
703  }
704
705  @Override
706  public HBaseProtos.LogEntry getLogEntries(RpcController controller,
707    HBaseProtos.LogRequest request) throws ServiceException {
708    return null;
709  }
710
711  @Override
712  public GetSpaceQuotaSnapshotsResponse getSpaceQuotaSnapshots(RpcController controller,
713    GetSpaceQuotaSnapshotsRequest request) throws ServiceException {
714    return null;
715  }
716
717  @Override
718  public EmptyMsg refreshSystemKeyCache(RpcController controller, EmptyMsg request)
719    throws ServiceException {
720    return null;
721  }
722
723  @Override
724  public BooleanMsg ejectManagedKeyDataCacheEntry(RpcController controller,
725    ManagedKeyEntryRequest request) throws ServiceException {
726    return null;
727  }
728
729  @Override
730  public EmptyMsg clearManagedKeyDataCache(RpcController controller, EmptyMsg request)
731    throws ServiceException {
732    return null;
733  }
734
735  @Override
736  public Connection createConnection(Configuration conf) throws IOException {
737    return null;
738  }
739
740  @Override
741  public boolean reportRegionSizesForQuotas(RegionSizeStore sizeStore) {
742    return true;
743  }
744
745  @Override
746  public boolean reportFileArchivalForQuotas(TableName tableName,
747    Collection<Entry<String, Long>> archivedFiles) {
748    return false;
749  }
750
751  public boolean isClusterUp() {
752    return true;
753  }
754
755  @Override
756  public ReplicationSourceService getReplicationSourceService() {
757    return null;
758  }
759
760  @Override
761  public TableDescriptors getTableDescriptors() {
762    return null;
763  }
764
765  @Override
766  public Optional<BlockCache> getBlockCache() {
767    return Optional.empty();
768  }
769
770  @Override
771  public Optional<MobFileCache> getMobFileCache() {
772    return Optional.empty();
773  }
774
775  @Override
776  public AccessChecker getAccessChecker() {
777    return null;
778  }
779
780  @Override
781  public ZKPermissionWatcher getZKPermissionWatcher() {
782    return null;
783  }
784
785  @Override
786  public AsyncClusterConnection getAsyncClusterConnection() {
787    return null;
788  }
789
790  @Override
791  public RegionReplicationBufferManager getRegionReplicationBufferManager() {
792    return null;
793  }
794
795  @Override
796  public ReplicateWALEntryResponse replicateToReplica(RpcController controller,
797    ReplicateWALEntryRequest request) throws ServiceException {
798    return null;
799  }
800
801  @Override
802  public KeyManagementService getKeyManagementService() {
803    return null;
804  }
805}