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}