You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2020/03/23 20:02:49 UTC

[hbase-site] branch asf-site updated: Published site at 7081ccd53c766fb0bafa4c3e1ef28f9b18383aa0.

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hbase-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 817f08e  Published site at 7081ccd53c766fb0bafa4c3e1ef28f9b18383aa0.
817f08e is described below

commit 817f08efbcd6141abca0b39194887ebaf231126e
Author: jenkins <bu...@apache.org>
AuthorDate: Mon Mar 23 20:02:25 2020 +0000

    Published site at 7081ccd53c766fb0bafa4c3e1ef28f9b18383aa0.
---
 acid-semantics.html                                |     2 +-
 apache_hbase_reference_guide.pdf                   |     4 +-
 apidocs/deprecated-list.html                       |     4 +-
 apidocs/index-all.html                             |    10 +-
 .../apache/hadoop/hbase/class-use/ServerName.html  |     2 +-
 .../org/apache/hadoop/hbase/client/AsyncAdmin.html |   374 +-
 .../org/apache/hadoop/hbase/client/AsyncTable.html |     8 +-
 .../org/apache/hadoop/hbase/client/Mutation.html   |    84 +-
 .../apache/hadoop/hbase/client/ServiceCaller.html  |    14 +-
 apidocs/org/apache/hadoop/hbase/client/Table.html  |   150 +-
 .../class-use/AsyncTable.CoprocessorCallback.html  |     2 +-
 .../hbase/client/class-use/ServiceCaller.html      |     8 +-
 .../hbase/filter/BinaryComponentComparator.html    |    16 +-
 .../hadoop/hbase/ipc/CoprocessorRpcChannel.html    |    14 +-
 .../org/apache/hadoop/hbase/ipc/package-tree.html  |     8 +-
 .../hadoop/hbase/rest/client/RemoteHTable.html     |    96 +-
 apidocs/overview-tree.html                         |     8 +-
 .../org/apache/hadoop/hbase/client/AsyncAdmin.html |  3225 ++--
 .../client/AsyncTable.CoprocessorCallback.html     |    28 +-
 .../org/apache/hadoop/hbase/client/AsyncTable.html |    28 +-
 .../org/apache/hadoop/hbase/client/Mutation.html   |  2009 +--
 .../apache/hadoop/hbase/client/ServiceCaller.html  |     8 +-
 .../org/apache/hadoop/hbase/client/Table.html      |  1429 +-
 .../hbase/filter/BinaryComponentComparator.html    |   208 +-
 .../hadoop/hbase/ipc/CoprocessorRpcChannel.html    |    41 +-
 .../hadoop/hbase/rest/client/RemoteHTable.html     |   118 +-
 book.html                                          |     2 +-
 bulk-loads.html                                    |     2 +-
 checkstyle-aggregate.html                          | 14202 ++++++++-------
 checkstyle.rss                                     |   134 +-
 coc.html                                           |     2 +-
 dependencies.html                                  |     2 +-
 dependency-convergence.html                        |     2 +-
 dependency-info.html                               |     2 +-
 dependency-management.html                         |     2 +-
 devapidocs/allclasses-frame.html                   |     4 -
 devapidocs/allclasses-noframe.html                 |     4 -
 devapidocs/constant-values.html                    |     4 +-
 devapidocs/deprecated-list.html                    |   101 +-
 devapidocs/index-all.html                          |   390 +-
 .../org/apache/hadoop/hbase/Coprocessor.html       |     6 +-
 .../hbase/MetaTableAccessor.CloseableVisitor.html  |     2 +-
 .../hbase/MetaTableAccessor.CollectAllVisitor.html |     6 +-
 .../hbase/MetaTableAccessor.CollectingVisitor.html |    12 +-
 .../MetaTableAccessor.DefaultVisitorBase.html      |     8 +-
 .../hadoop/hbase/MetaTableAccessor.QueryType.html  |    18 +-
 ...MetaTableAccessor.ReplicationBarrierResult.html |    18 +-
 .../hadoop/hbase/MetaTableAccessor.Visitor.html    |     4 +-
 .../org/apache/hadoop/hbase/MetaTableAccessor.html |   238 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |     4 +-
 .../org/apache/hadoop/hbase/class-use/Cell.html    |     4 +-
 .../apache/hadoop/hbase/class-use/Coprocessor.html |    28 +-
 .../hadoop/hbase/class-use/HRegionLocation.html    |    12 +-
 .../apache/hadoop/hbase/class-use/ServerName.html  |    58 +-
 .../apache/hadoop/hbase/class-use/TableName.html   |    83 +-
 ...ncAdmin.SyncCoprocessorRpcChannelOverAsync.html |    64 +-
 .../hadoop/hbase/client/AdminOverAsyncAdmin.html   |   352 +-
 .../org/apache/hadoop/hbase/client/AsyncAdmin.html |   374 +-
 .../hadoop/hbase/client/AsyncHBaseAdmin.html       |     8 +-
 .../org/apache/hadoop/hbase/client/AsyncTable.html |     8 +-
 .../apache/hadoop/hbase/client/AsyncTableImpl.html |    68 +-
 .../client/ClientCoprocessorRpcController.html     |    46 +-
 .../hbase/client/ConnectionUtils.Converter.html    |     4 +-
 .../hbase/client/ConnectionUtils.RpcCall.html      |     4 +-
 .../hadoop/hbase/client/ConnectionUtils.html       |    96 +-
 .../client/CoprocessorBlockingRpcCallback.html     |    18 +-
 .../client/MasterCoprocessorRpcChannelImpl.html    |    58 +-
 .../hadoop/hbase/client/Mutation.CellWrapper.html  |    64 +-
 .../org/apache/hadoop/hbase/client/Mutation.html   |   124 +-
 ...seAdmin.AddColumnFamilyProcedureBiConsumer.html |     6 +-
 .../client/RawAsyncHBaseAdmin.AdminRpcCall.html    |     4 +-
 .../hbase/client/RawAsyncHBaseAdmin.Converter.html |     4 +-
 ...seAdmin.CreateNamespaceProcedureBiConsumer.html |     6 +-
 ...cHBaseAdmin.CreateTableProcedureBiConsumer.html |     6 +-
 ...dmin.DeleteColumnFamilyProcedureBiConsumer.html |     6 +-
 ...seAdmin.DeleteNamespaceProcedureBiConsumer.html |     6 +-
 ...cHBaseAdmin.DeleteTableProcedureBiConsumer.html |     8 +-
 ...HBaseAdmin.DisableTableProcedureBiConsumer.html |     6 +-
 ...cHBaseAdmin.EnableTableProcedureBiConsumer.html |     6 +-
 .../client/RawAsyncHBaseAdmin.MasterRpcCall.html   |     4 +-
 ...eAdmin.MergeTableRegionProcedureBiConsumer.html |     6 +-
 ...dmin.ModifyColumnFamilyProcedureBiConsumer.html |     6 +-
 ...seAdmin.ModifyNamespaceProcedureBiConsumer.html |     6 +-
 ...cHBaseAdmin.ModifyTableProcedureBiConsumer.html |     6 +-
 ...yncHBaseAdmin.NamespaceProcedureBiConsumer.html |    14 +-
 .../RawAsyncHBaseAdmin.ProcedureBiConsumer.html    |    10 +-
 ...cHBaseAdmin.ReplicationProcedureBiConsumer.html |    14 +-
 ...eAdmin.SplitTableRegionProcedureBiConsumer.html |     6 +-
 .../client/RawAsyncHBaseAdmin.TableOperator.html   |     4 +-
 ...awAsyncHBaseAdmin.TableProcedureBiConsumer.html |    14 +-
 ...BaseAdmin.TruncateTableProcedureBiConsumer.html |     6 +-
 .../hadoop/hbase/client/RawAsyncHBaseAdmin.html    |   460 +-
 ...yncTableImpl.CoprocessorServiceBuilderImpl.html |     8 +-
 .../hadoop/hbase/client/RawAsyncTableImpl.html     |    16 +-
 .../client/RegionCoprocessorRpcChannelImpl.html    |    70 +-
 .../hbase/client/RegionCoprocessorServiceExec.html |    28 +-
 .../RegionServerCoprocessorRpcChannelImpl.html     |    58 +-
 .../apache/hadoop/hbase/client/ServiceCaller.html  |    14 +-
 .../hbase/client/SyncCoprocessorRpcChannel.html    |    80 +-
 .../hbase/client/Table.CheckAndMutateBuilder.html  |    18 +-
 .../Table.CheckAndMutateWithFilterBuilder.html     |    10 +-
 .../org/apache/hadoop/hbase/client/Table.html      |   150 +-
 ...OverAsyncTable.RegionCoprocessorRpcChannel.html |    58 +-
 .../hbase/client/TableOverAsyncTable.StubCall.html |     4 +-
 .../hadoop/hbase/client/TableOverAsyncTable.html   |   132 +-
 .../class-use/AdvancedScanResultConsumer.html      |     4 +-
 ...ngCallerFactory.MasterRequestCallerBuilder.html |     4 +-
 ...ngCallerFactory.ServerRequestCallerBuilder.html |     4 +-
 .../class-use/AsyncTable.CoprocessorCallback.html  |    10 +-
 .../AsyncTable.CoprocessorServiceBuilder.html      |     6 +-
 .../hadoop/hbase/client/class-use/AsyncTable.html  |    18 +-
 .../client/class-use/ColumnFamilyDescriptor.html   |    23 +
 .../hadoop/hbase/client/class-use/Connection.html  |    14 +-
 .../hadoop/hbase/client/class-use/Delete.html      |     4 +-
 .../hadoop/hbase/client/class-use/RegionInfo.html  |    22 +-
 .../apache/hadoop/hbase/client/class-use/Scan.html |    64 +-
 .../hbase/client/class-use/ServiceCaller.html      |    30 +-
 .../hbase/client/class-use/SlowLogQueryFilter.html |    38 +
 .../hbase/client/class-use/SlowLogRecord.html      |    38 +
 .../hadoop/hbase/client/class-use/Table.html       |    22 +-
 ...ationClient.AggregationClientRpcController.html |    24 +-
 .../client/coprocessor/AggregationClient.html      |   186 +-
 .../client/coprocessor/AggregationHelper.html      |    32 +-
 ...regationClient.AbstractAggregationCallback.html |    50 +-
 .../client/coprocessor/AsyncAggregationClient.html |   114 +-
 .../coprocessor/BigDecimalColumnInterpreter.html   |    94 +-
 .../coprocessor/DoubleColumnInterpreter.html       |    66 +-
 .../client/coprocessor/LongColumnInterpreter.html  |    66 +-
 .../client/coprocessor/RowProcessorClient.html     |    10 +-
 .../client/coprocessor/class-use/Batch.Call.html   |    10 +-
 .../coprocessor/class-use/Batch.Callback.html      |    24 +-
 .../hbase/client/coprocessor/package-tree.html     |     2 +-
 .../hbase/client/example/RefreshHFilesClient.html  |    18 +-
 .../apache/hadoop/hbase/client/package-tree.html   |    28 +-
 .../apache/hadoop/hbase/client/package-use.html    |    22 +-
 .../hbase/coprocessor/AggregateImplementation.html |   146 +-
 .../coprocessor/BaseRowProcessorEndpoint.html      |    60 +-
 .../hbase/coprocessor/ColumnInterpreter.html       |    44 +-
 .../hbase/coprocessor/CoprocessorService.html      |    10 +-
 ...kwardCompatiblity.MasterCoprocessorService.html |   364 -
 ...kwardCompatiblity.RegionCoprocessorService.html |   364 -
 ...ompatiblity.RegionServerCoprocessorService.html |   364 -
 .../CoprocessorServiceBackwardCompatiblity.html    |   288 -
 .../hadoop/hbase/coprocessor/CoreCoprocessor.html  |     4 +-
 .../hadoop/hbase/coprocessor/EndpointObserver.html |    40 +-
 .../hadoop/hbase/coprocessor/Export.Response.html  |     6 +-
 .../apache/hadoop/hbase/coprocessor/Export.html    |   108 +-
 .../hbase/coprocessor/MasterCoprocessor.html       |     2 +-
 .../coprocessor/MultiRowMutationEndpoint.html      |    50 +-
 .../hbase/coprocessor/RegionCoprocessor.html       |     2 +-
 .../hbase/coprocessor/RegionServerCoprocessor.html |     2 +-
 .../coprocessor/SingletonCoprocessorService.html   |     6 +-
 .../coprocessor/class-use/ColumnInterpreter.html   |    70 +-
 .../coprocessor/class-use/CoprocessorService.html  |    62 +-
 ...kwardCompatiblity.MasterCoprocessorService.html |   125 -
 ...kwardCompatiblity.RegionCoprocessorService.html |   125 -
 ...ompatiblity.RegionServerCoprocessorService.html |   125 -
 .../CoprocessorServiceBackwardCompatiblity.html    |   125 -
 .../coprocessor/class-use/MasterCoprocessor.html   |    36 +-
 .../coprocessor/class-use/ObserverContext.html     |    32 +-
 .../coprocessor/class-use/RegionCoprocessor.html   |    16 +-
 .../class-use/RegionCoprocessorEnvironment.html    |    32 +-
 .../class-use/RegionServerCoprocessor.html         |    30 +-
 .../class-use/SingletonCoprocessorService.html     |    55 +-
 .../example/BulkDeleteEndpoint.Column.html         |    12 +-
 .../coprocessor/example/BulkDeleteEndpoint.html    |    60 +-
 .../coprocessor/example/RefreshHFilesEndpoint.html |    52 +-
 .../coprocessor/example/RowCountEndpoint.html      |    66 +-
 .../hbase/coprocessor/example/package-tree.html    |     6 +-
 .../hadoop/hbase/coprocessor/package-frame.html    |     4 -
 .../hadoop/hbase/coprocessor/package-summary.html  |    22 +-
 .../hadoop/hbase/coprocessor/package-tree.html     |    14 +-
 .../hadoop/hbase/coprocessor/package-use.html      |    26 +-
 .../class-use/DeserializationException.html        |     4 +-
 .../class-use/UnknownProtocolException.html        |     6 +-
 .../hbase/filter/BinaryComponentComparator.html    |    20 +-
 .../apache/hadoop/hbase/filter/package-tree.html   |    10 +-
 .../hadoop/hbase/hbtop/terminal/package-tree.html  |     2 +-
 .../org/apache/hadoop/hbase/http/package-tree.html |     2 +-
 .../hbase/io/hfile/class-use/HFileContext.html     |    23 +
 .../io/hfile/class-use/HFileContextBuilder.html    |    25 -
 .../apache/hadoop/hbase/io/hfile/package-tree.html |     6 +-
 .../apache/hadoop/hbase/io/hfile/package-use.html  |     4 +-
 .../hadoop/hbase/ipc/CoprocessorRpcChannel.html    |    14 +-
 .../CoprocessorRpcUtils.BlockingRpcCallback.html   |    18 +-
 .../hadoop/hbase/ipc/CoprocessorRpcUtils.html      |   106 +-
 .../hadoop/hbase/ipc/ServerRpcController.html      |    52 +-
 .../hbase/ipc/class-use/HBaseRpcController.html    |    24 +-
 .../org/apache/hadoop/hbase/ipc/package-tree.html  |    16 +-
 .../hadoop/hbase/mapreduce/package-tree.html       |     2 +-
 .../master/HMaster.InitializationMonitor.html      |    20 +-
 .../master/HMaster.MasterStoppedException.html     |     4 +-
 .../hbase/master/HMaster.RedirectServlet.html      |    12 +-
 .../master/HMaster.TableDescriptorGetter.html      |     4 +-
 .../org/apache/hadoop/hbase/master/HMaster.html    |   522 +-
 .../master/HMasterCommandLine.LocalHMaster.html    |     2 +-
 .../MasterCoprocessorHost.MasterEnvironment.html   |    18 +-
 ...rHost.MasterEnvironmentForCoreCoprocessors.html |     8 +-
 ...terCoprocessorHost.MasterObserverOperation.html |    10 +-
 .../hadoop/hbase/master/MasterCoprocessorHost.html |   360 +-
 .../MasterRpcServices.BalanceSwitchMode.html       |     4 +-
 .../hadoop/hbase/master/MasterRpcServices.html     |   114 +-
 .../apache/hadoop/hbase/master/MasterServices.html |     6 +-
 .../hadoop/hbase/master/balancer/package-tree.html |     2 +-
 .../master/class-use/MasterCoprocessorHost.html    |     4 +-
 .../apache/hadoop/hbase/master/package-tree.html   |    10 +-
 .../hbase/master/procedure/package-tree.html       |     4 +-
 .../org/apache/hadoop/hbase/package-tree.html      |    14 +-
 .../org/apache/hadoop/hbase/package-use.html       |     5 +
 .../hadoop/hbase/procedure2/package-tree.html      |     4 +-
 .../hbase/procedure2/store/wal/package-tree.html   |     2 +-
 .../apache/hadoop/hbase/quotas/package-tree.html   |     6 +-
 .../hbase/regionserver/BaseRowProcessor.html       |    34 +-
 .../hadoop/hbase/regionserver/HMobStore.html       |     2 +-
 .../HRegion.BatchOperation.Visitor.html            |     4 +-
 .../hbase/regionserver/HRegion.BatchOperation.html |    78 +-
 .../regionserver/HRegion.BulkLoadListener.html     |     8 +-
 .../regionserver/HRegion.FlushResult.Result.html   |    10 +-
 .../hbase/regionserver/HRegion.FlushResult.html    |     8 +-
 .../regionserver/HRegion.FlushResultImpl.html      |    24 +-
 .../HRegion.MutationBatchOperation.html            |    44 +-
 .../HRegion.ObservedExceptionsInBatch.html         |    22 +-
 .../regionserver/HRegion.PrepareFlushResult.html   |    26 +-
 .../regionserver/HRegion.RegionScannerImpl.html    |    90 +-
 .../regionserver/HRegion.ReplayBatchOperation.html |    32 +-
 .../hbase/regionserver/HRegion.RowLockContext.html |    28 +-
 .../hbase/regionserver/HRegion.RowLockImpl.html    |    16 +-
 .../hbase/regionserver/HRegion.WriteState.html     |    26 +-
 .../apache/hadoop/hbase/regionserver/HRegion.html  |   790 +-
 .../HRegionServer.CompactionChecker.html           |    14 +-
 .../HRegionServer.MovedRegionInfo.html             |    16 +-
 .../HRegionServer.MovedRegionsCleaner.html         |    16 +-
 .../HRegionServer.PeriodicMemStoreFlusher.html     |    14 +-
 .../HRegionServer.SystemExitWhenAbortTimeout.html  |     6 +-
 .../hadoop/hbase/regionserver/HRegionServer.html   |   558 +-
 .../regionserver/HStore.StoreFlusherImpl.html      |    34 +-
 .../apache/hadoop/hbase/regionserver/HStore.html   |   246 +-
 .../hadoop/hbase/regionserver/RSRpcServices.html   |     8 +-
 ...nCoprocessorHost.BulkLoadObserverOperation.html |     4 +-
 .../RegionCoprocessorHost.RegionEnvironment.html   |    32 +-
 ...rHost.RegionEnvironmentForCoreCoprocessors.html |     8 +-
 ...rHost.RegionObserverOperationWithoutResult.html |    10 +-
 ...nCoprocessorHost.TableCoprocessorAttribute.html |    20 +-
 .../hbase/regionserver/RegionCoprocessorHost.html  |   206 +-
 ...verCoprocessorHost.RegionServerEnvironment.html |    20 +-
 ...RegionServerEnvironmentForCoreCoprocessors.html |     8 +-
 ...rocessorHost.RegionServerObserverOperation.html |     6 +-
 .../regionserver/RegionServerCoprocessorHost.html  |    34 +-
 ...RegionServerServices.PostOpenDeployContext.html |    16 +-
 ...erverServices.RegionStateTransitionContext.html |    26 +-
 .../hbase/regionserver/RegionServerServices.html   |    70 +-
 .../hadoop/hbase/regionserver/RowProcessor.html    |     6 +-
 .../hbase/regionserver/class-use/HRegion.html      |     2 +-
 .../hbase/regionserver/class-use/HStoreFile.html   |     4 +
 .../hbase/regionserver/class-use/Region.html       |     2 +-
 .../hbase/regionserver/class-use/RowProcessor.html |     6 +-
 .../class-use/StoreFileWriter.Builder.html         |    25 -
 .../hadoop/hbase/regionserver/package-summary.html |     4 +-
 .../hadoop/hbase/regionserver/package-tree.html    |    16 +-
 .../hadoop/hbase/regionserver/package-use.html     |     3 -
 .../hbase/regionserver/wal/package-tree.html       |     4 +-
 .../hadoop/hbase/rest/client/RemoteHTable.html     |    96 +-
 .../hadoop/hbase/rsgroup/RSGroupAdminClient.html   |    32 +-
 .../hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html |    16 +-
 .../hbase/rsgroup/RSGroupAdminServiceImpl.html     |   212 +-
 .../RSGroupInfoManagerImpl.RSGroupInfoHolder.html  |    10 +-
 ...SGroupInfoManagerImpl.RSGroupStartupWorker.html |    16 +-
 .../hbase/rsgroup/RSGroupInfoManagerImpl.html      |   124 +-
 .../apache/hadoop/hbase/rsgroup/package-tree.html  |     2 +-
 .../apache/hadoop/hbase/security/SecurityInfo.html |    16 +-
 .../hbase/security/access/AccessControlClient.html |    52 +-
 .../hbase/security/access/AccessControlUtil.html   |   356 +-
 .../security/access/AccessController.OpType.html   |    30 +-
 .../hbase/security/access/AccessController.html    |   492 +-
 .../access/class-use/Permission.Action.html        |    34 +-
 .../security/access/class-use/Permission.html      |    12 +-
 .../security/access/class-use/TablePermission.html |     2 +-
 .../security/access/class-use/UserPermission.html  |    34 +-
 .../hadoop/hbase/security/access/package-tree.html |    10 +-
 .../hbase/security/class-use/UserProvider.html     |     2 +-
 .../hbase/security/token/ClientTokenUtil.html      |    34 +-
 .../hadoop/hbase/security/token/TokenProvider.html |    54 +-
 .../hadoop/hbase/security/token/TokenUtil.html     |    40 +-
 .../class-use/AuthenticationTokenIdentifier.html   |     8 +-
 .../hadoop/hbase/security/token/package-tree.html  |     2 +-
 .../security/visibility/VisibilityClient.html      |    70 +-
 .../security/visibility/VisibilityController.html  |   100 +-
 .../hbase/security/visibility/VisibilityUtils.html |    12 +-
 .../visibility/class-use/CellVisibility.html       |     4 +-
 .../hbase/security/visibility/package-tree.html    |     2 +-
 ...hriftHBaseServiceHandler.TIOErrorWithCause.html |    12 +-
 .../hbase/thrift2/ThriftHBaseServiceHandler.html   |   296 +-
 .../hadoop/hbase/thrift2/ThriftUtilities.html      |   310 +-
 .../hadoop/hbase/thrift2/client/ThriftAdmin.html   |   396 +-
 .../hadoop/hbase/thrift2/client/ThriftTable.html   |     2 +-
 .../apache/hadoop/hbase/util/class-use/Pair.html   |     8 +-
 .../org/apache/hadoop/hbase/util/package-tree.html |    12 +-
 .../wal/BoundedRecoveredHFilesOutputSink.html      |    92 +-
 .../org/apache/hadoop/hbase/wal/WALSplitUtil.html  |   122 +-
 .../org/apache/hadoop/hbase/wal/package-tree.html  |     2 +-
 devapidocs/overview-tree.html                      |    50 +-
 .../org/apache/hadoop/hbase/Coprocessor.State.html |     8 +-
 .../org/apache/hadoop/hbase/Coprocessor.html       |     8 +-
 .../hbase/MetaTableAccessor.CloseableVisitor.html  |  4149 ++---
 .../hbase/MetaTableAccessor.CollectAllVisitor.html |  4149 ++---
 .../hbase/MetaTableAccessor.CollectingVisitor.html |  4149 ++---
 .../MetaTableAccessor.DefaultVisitorBase.html      |  4149 ++---
 .../hadoop/hbase/MetaTableAccessor.QueryType.html  |  4149 ++---
 ...MetaTableAccessor.ReplicationBarrierResult.html |  4149 ++---
 .../hadoop/hbase/MetaTableAccessor.Visitor.html    |  4149 ++---
 .../org/apache/hadoop/hbase/MetaTableAccessor.html |  4149 ++---
 .../src-html/org/apache/hadoop/hbase/Version.html  |     4 +-
 ...ncAdmin.SyncCoprocessorRpcChannelOverAsync.html |  2033 +--
 .../hadoop/hbase/client/AdminOverAsyncAdmin.html   |  2033 +--
 .../org/apache/hadoop/hbase/client/AsyncAdmin.html |  3225 ++--
 .../hadoop/hbase/client/AsyncHBaseAdmin.html       |    68 +-
 .../client/AsyncTable.CheckAndMutateBuilder.html   |    28 +-
 ...AsyncTable.CheckAndMutateWithFilterBuilder.html |    28 +-
 .../client/AsyncTable.CoprocessorCallback.html     |    28 +-
 .../AsyncTable.CoprocessorServiceBuilder.html      |    28 +-
 .../org/apache/hadoop/hbase/client/AsyncTable.html |    28 +-
 .../apache/hadoop/hbase/client/AsyncTableImpl.html |   589 +-
 .../client/ClientCoprocessorRpcController.html     |   109 +-
 .../hbase/client/ConnectionUtils.Converter.html    |  1223 +-
 .../hbase/client/ConnectionUtils.RpcCall.html      |  1223 +-
 .../hadoop/hbase/client/ConnectionUtils.html       |  1223 +-
 .../client/CoprocessorBlockingRpcCallback.html     |    99 +-
 .../client/MasterCoprocessorRpcChannelImpl.html    |   135 +-
 .../hadoop/hbase/client/Mutation.CellWrapper.html  |  2009 +--
 .../org/apache/hadoop/hbase/client/Mutation.html   |  2009 +--
 ...seAdmin.AddColumnFamilyProcedureBiConsumer.html |  8207 ++++-----
 .../client/RawAsyncHBaseAdmin.AdminRpcCall.html    |  8207 ++++-----
 .../hbase/client/RawAsyncHBaseAdmin.Converter.html |  8207 ++++-----
 ...seAdmin.CreateNamespaceProcedureBiConsumer.html |  8207 ++++-----
 ...cHBaseAdmin.CreateTableProcedureBiConsumer.html |  8207 ++++-----
 ...dmin.DeleteColumnFamilyProcedureBiConsumer.html |  8207 ++++-----
 ...seAdmin.DeleteNamespaceProcedureBiConsumer.html |  8207 ++++-----
 ...cHBaseAdmin.DeleteTableProcedureBiConsumer.html |  8207 ++++-----
 ...HBaseAdmin.DisableTableProcedureBiConsumer.html |  8207 ++++-----
 ...cHBaseAdmin.EnableTableProcedureBiConsumer.html |  8207 ++++-----
 .../client/RawAsyncHBaseAdmin.MasterRpcCall.html   |  8207 ++++-----
 ...eAdmin.MergeTableRegionProcedureBiConsumer.html |  8207 ++++-----
 ...dmin.ModifyColumnFamilyProcedureBiConsumer.html |  8207 ++++-----
 ...seAdmin.ModifyNamespaceProcedureBiConsumer.html |  8207 ++++-----
 ...cHBaseAdmin.ModifyTableProcedureBiConsumer.html |  8207 ++++-----
 ...yncHBaseAdmin.NamespaceProcedureBiConsumer.html |  8207 ++++-----
 .../RawAsyncHBaseAdmin.ProcedureBiConsumer.html    |  8207 ++++-----
 ...cHBaseAdmin.ReplicationProcedureBiConsumer.html |  8207 ++++-----
 ...eAdmin.SplitTableRegionProcedureBiConsumer.html |  8207 ++++-----
 .../client/RawAsyncHBaseAdmin.TableOperator.html   |  8207 ++++-----
 ...awAsyncHBaseAdmin.TableProcedureBiConsumer.html |  8207 ++++-----
 ...BaseAdmin.TruncateTableProcedureBiConsumer.html |  8207 ++++-----
 .../hadoop/hbase/client/RawAsyncHBaseAdmin.html    |  8207 ++++-----
 ...awAsyncTableImpl.CheckAndMutateBuilderImpl.html |    56 +-
 ...leImpl.CheckAndMutateWithFilterBuilderImpl.html |    56 +-
 ...yncTableImpl.CoprocessorServiceBuilderImpl.html |    56 +-
 .../client/RawAsyncTableImpl.NoncedConverter.html  |    56 +-
 .../hadoop/hbase/client/RawAsyncTableImpl.html     |    56 +-
 .../client/RegionCoprocessorRpcChannelImpl.html    |   203 +-
 .../hbase/client/RegionCoprocessorServiceExec.html |     8 +-
 .../RegionServerCoprocessorRpcChannelImpl.html     |   135 +-
 .../apache/hadoop/hbase/client/ServiceCaller.html  |     8 +-
 .../hbase/client/SyncCoprocessorRpcChannel.html    |   117 +-
 .../hbase/client/Table.CheckAndMutateBuilder.html  |  1429 +-
 .../Table.CheckAndMutateWithFilterBuilder.html     |  1429 +-
 .../org/apache/hadoop/hbase/client/Table.html      |  1429 +-
 ...OverAsyncTable.RegionCoprocessorRpcChannel.html |  1018 +-
 .../hbase/client/TableOverAsyncTable.StubCall.html |  1018 +-
 .../hadoop/hbase/client/TableOverAsyncTable.html   |  1018 +-
 ...ationClient.AggregationClientRpcController.html |    72 +-
 .../client/coprocessor/AggregationClient.html      |    72 +-
 .../client/coprocessor/AggregationHelper.html      |   183 +-
 ...regationClient.AbstractAggregationCallback.html |   876 +-
 .../client/coprocessor/AsyncAggregationClient.html |   876 +-
 .../coprocessor/BigDecimalColumnInterpreter.html   |   253 +-
 .../coprocessor/DoubleColumnInterpreter.html       |    20 +-
 .../client/coprocessor/LongColumnInterpreter.html  |    20 +-
 .../client/coprocessor/RowProcessorClient.html     |    64 +-
 .../hbase/client/example/RefreshHFilesClient.html  |   185 +-
 .../hbase/coprocessor/AggregateImplementation.html |    54 +-
 .../coprocessor/BaseRowProcessorEndpoint.html      |   247 +-
 .../hbase/coprocessor/ColumnInterpreter.html       |   321 +-
 .../hbase/coprocessor/CoprocessorService.html      |    29 +-
 ...kwardCompatiblity.MasterCoprocessorService.html |   158 -
 ...kwardCompatiblity.RegionCoprocessorService.html |   158 -
 ...ompatiblity.RegionServerCoprocessorService.html |   158 -
 .../CoprocessorServiceBackwardCompatiblity.html    |   158 -
 .../hadoop/hbase/coprocessor/EndpointObserver.html |   127 +-
 .../hbase/coprocessor/Export.PrivilegedWriter.html |   128 +-
 .../hadoop/hbase/coprocessor/Export.RegionOp.html  |   128 +-
 .../hadoop/hbase/coprocessor/Export.Response.html  |   128 +-
 .../hbase/coprocessor/Export.ScanCoprocessor.html  |   128 +-
 .../hbase/coprocessor/Export.SecureWriter.html     |   128 +-
 .../apache/hadoop/hbase/coprocessor/Export.html    |   128 +-
 .../coprocessor/MultiRowMutationEndpoint.html      |   249 +-
 .../coprocessor/SingletonCoprocessorService.html   |    29 +-
 .../example/BulkDeleteEndpoint.Column.html         |   540 +-
 .../coprocessor/example/BulkDeleteEndpoint.html    |   540 +-
 .../coprocessor/example/RefreshHFilesEndpoint.html |   136 +-
 .../coprocessor/example/RowCountEndpoint.html      |   290 +-
 .../hbase/filter/BinaryComponentComparator.html    |   208 +-
 .../hadoop/hbase/ipc/CoprocessorRpcChannel.html    |    41 +-
 .../CoprocessorRpcUtils.BlockingRpcCallback.html   |   439 +-
 .../hadoop/hbase/ipc/CoprocessorRpcUtils.html      |   439 +-
 .../hadoop/hbase/ipc/ServerRpcController.html      |   229 +-
 .../master/HMaster.InitializationMonitor.html      |  7601 ++++----
 .../master/HMaster.MasterStoppedException.html     |  7601 ++++----
 .../hbase/master/HMaster.RedirectServlet.html      |  7601 ++++----
 .../master/HMaster.TableDescriptorGetter.html      |  7601 ++++----
 .../org/apache/hadoop/hbase/master/HMaster.html    |  7601 ++++----
 .../MasterCoprocessorHost.MasterEnvironment.html   |  3957 +++--
 ...rHost.MasterEnvironmentForCoreCoprocessors.html |  3957 +++--
 ...terCoprocessorHost.MasterObserverOperation.html |  3957 +++--
 .../hadoop/hbase/master/MasterCoprocessorHost.html |  3957 +++--
 .../MasterRpcServices.BalanceSwitchMode.html       |  3077 ++--
 .../hadoop/hbase/master/MasterRpcServices.html     |  3077 ++--
 .../apache/hadoop/hbase/master/MasterServices.html |    78 +-
 .../hbase/master/MirroringTableStateManager.html   |    20 +-
 .../hbase/regionserver/BaseRowProcessor.html       |    95 +-
 .../HRegion.BatchOperation.Visitor.html            | 17131 +++++++++----------
 .../hbase/regionserver/HRegion.BatchOperation.html | 17131 +++++++++----------
 .../regionserver/HRegion.BulkLoadListener.html     | 17131 +++++++++----------
 .../regionserver/HRegion.FlushResult.Result.html   | 17131 +++++++++----------
 .../hbase/regionserver/HRegion.FlushResult.html    | 17131 +++++++++----------
 .../regionserver/HRegion.FlushResultImpl.html      | 17131 +++++++++----------
 .../HRegion.MutationBatchOperation.html            | 17131 +++++++++----------
 .../HRegion.ObservedExceptionsInBatch.html         | 17131 +++++++++----------
 .../regionserver/HRegion.PrepareFlushResult.html   | 17131 +++++++++----------
 .../regionserver/HRegion.RegionScannerImpl.html    | 17131 +++++++++----------
 .../regionserver/HRegion.ReplayBatchOperation.html | 17131 +++++++++----------
 .../hbase/regionserver/HRegion.RowLockContext.html | 17131 +++++++++----------
 .../hbase/regionserver/HRegion.RowLockImpl.html    | 17131 +++++++++----------
 .../hbase/regionserver/HRegion.WriteState.html     | 17131 +++++++++----------
 .../apache/hadoop/hbase/regionserver/HRegion.html  | 17131 +++++++++----------
 .../HRegionServer.CompactionChecker.html           |  7477 ++++----
 .../HRegionServer.MovedRegionInfo.html             |  7477 ++++----
 .../HRegionServer.MovedRegionsCleaner.html         |  7477 ++++----
 .../HRegionServer.PeriodicMemStoreFlusher.html     |  7477 ++++----
 .../HRegionServer.SystemExitWhenAbortTimeout.html  |  7477 ++++----
 .../hadoop/hbase/regionserver/HRegionServer.html   |  7477 ++++----
 .../regionserver/HStore.StoreFlusherImpl.html      |  3536 ++--
 .../apache/hadoop/hbase/regionserver/HStore.html   |  3536 ++--
 .../regionserver/RSRpcServices.LogDelegate.html    |     6 +-
 .../RSRpcServices.RegionScannerCloseCallBack.html  |     6 +-
 .../RSRpcServices.RegionScannerHolder.html         |     6 +-
 ...RSRpcServices.RegionScannerShippedCallBack.html |     6 +-
 .../RSRpcServices.RegionScannersCloseCallBack.html |     6 +-
 .../RSRpcServices.ScannerListener.html             |     6 +-
 .../hadoop/hbase/regionserver/RSRpcServices.html   |     6 +-
 ...nCoprocessorHost.BulkLoadObserverOperation.html |  3809 ++---
 .../RegionCoprocessorHost.RegionEnvironment.html   |  3809 ++---
 ...rHost.RegionEnvironmentForCoreCoprocessors.html |  3809 ++---
 ...rHost.RegionObserverOperationWithoutResult.html |  3809 ++---
 ...nCoprocessorHost.TableCoprocessorAttribute.html |  3809 ++---
 .../hbase/regionserver/RegionCoprocessorHost.html  |  3809 ++---
 ...verCoprocessorHost.RegionServerEnvironment.html |   489 +-
 ...RegionServerEnvironmentForCoreCoprocessors.html |   489 +-
 ...rocessorHost.RegionServerObserverOperation.html |   489 +-
 .../regionserver/RegionServerCoprocessorHost.html  |   489 +-
 ...RegionServerServices.PostOpenDeployContext.html |   599 +-
 ...erverServices.RegionStateTransitionContext.html |   599 +-
 .../hbase/regionserver/RegionServerServices.html   |   599 +-
 .../hadoop/hbase/regionserver/RowProcessor.html    |    18 +-
 .../RemoteHTable.CheckAndMutateBuilderImpl.html    |   118 +-
 .../rest/client/RemoteHTable.Scanner.Iter.html     |   118 +-
 .../hbase/rest/client/RemoteHTable.Scanner.html    |   118 +-
 .../hadoop/hbase/rest/client/RemoteHTable.html     |   118 +-
 .../hadoop/hbase/rsgroup/RSGroupAdminClient.html   |   483 +-
 .../hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html |    85 +-
 .../hbase/rsgroup/RSGroupAdminServiceImpl.html     |   759 +-
 .../RSGroupInfoManagerImpl.RSGroupInfoHolder.html  |  2197 +--
 ...SGroupInfoManagerImpl.RSGroupStartupWorker.html |  2197 +--
 .../hbase/rsgroup/RSGroupInfoManagerImpl.html      |  2197 +--
 .../apache/hadoop/hbase/security/SecurityInfo.html |    14 +-
 .../hbase/security/access/AccessControlClient.html |   731 +-
 .../hbase/security/access/AccessControlUtil.html   |  1801 +-
 .../security/access/AccessController.OpType.html   |  5329 +++---
 .../hbase/security/access/AccessController.html    |  5329 +++---
 .../hbase/security/access/PermissionStorage.html   |    94 +-
 .../token/AuthenticationTokenIdentifier.html       |    18 +-
 .../hbase/security/token/ClientTokenUtil.html      |   359 +-
 .../hadoop/hbase/security/token/TokenProvider.html |   267 +-
 .../hadoop/hbase/security/token/TokenUtil.html     |   501 +-
 .../security/visibility/VisibilityClient.html      |    58 +-
 ...er.DeleteVersionVisibilityExpressionFilter.html |   196 +-
 .../security/visibility/VisibilityController.html  |   196 +-
 .../security/visibility/VisibilityLabelsCache.html |    26 +-
 .../hbase/security/visibility/VisibilityUtils.html |    92 +-
 ...hriftHBaseServiceHandler.TIOErrorWithCause.html |  1589 +-
 .../hbase/thrift2/ThriftHBaseServiceHandler.html   |  1589 +-
 .../hadoop/hbase/thrift2/ThriftUtilities.html      |  2821 +--
 .../hadoop/hbase/thrift2/client/ThriftAdmin.html   |  2358 +--
 .../wal/BoundedRecoveredHFilesOutputSink.html      |   393 +-
 .../hbase/wal/WALSplitUtil.MutationReplay.html     |    89 +-
 .../org/apache/hadoop/hbase/wal/WALSplitUtil.html  |    89 +-
 downloads.html                                     |     2 +-
 export_control.html                                |     2 +-
 index.html                                         |     2 +-
 issue-tracking.html                                |     2 +-
 mail-lists.html                                    |     2 +-
 metrics.html                                       |     2 +-
 old_news.html                                      |     2 +-
 plugin-management.html                             |     2 +-
 plugins.html                                       |     2 +-
 poweredbyhbase.html                                |     2 +-
 project-info.html                                  |     2 +-
 project-reports.html                               |     2 +-
 project-summary.html                               |     2 +-
 pseudo-distributed.html                            |     2 +-
 replication.html                                   |     2 +-
 resources.html                                     |     2 +-
 source-repository.html                             |     2 +-
 sponsors.html                                      |     2 +-
 supportingprojects.html                            |     2 +-
 team-list.html                                     |     2 +-
 testdevapidocs/allclasses-frame.html               |     4 +-
 testdevapidocs/allclasses-noframe.html             |     4 +-
 testdevapidocs/constant-values.html                |    66 +-
 testdevapidocs/index-all.html                      |   208 +-
 .../hadoop/hbase/IntegrationTestMetaReplicas.html  |    29 +-
 .../hadoop/hbase/MockRegionServerServices.html     |   146 +-
 ...Fencing.BlockCompactionsInCompletionHStore.html |     2 +-
 .../TestJMXConnectorServer.MyAccessController.html |     2 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |     2 +-
 .../hadoop/hbase/class-use/HBaseClassTestRule.html |    20 +-
 .../hbase/class-use/HBaseTestingUtility.html       |    72 +-
 .../hadoop/hbase/client/AbstractTestShell.html     |     4 +-
 .../AbstractTestUpdateConfiguration.html}          |   221 +-
 .../hbase/client/BufferingScanResultConsumer.html  |     4 +-
 .../hadoop/hbase/client/DummyAsyncTable.html       |    60 +-
 .../client/TestAsyncAccessControlAdminApi.html     |    12 +
 .../hadoop/hbase/client/TestAsyncAdminBase.html    |    14 +-
 .../hbase/client/TestAsyncAdminMasterSwitch.html   |    12 +
 .../client/TestAsyncAdminWithRegionReplicas.html   |    12 +
 .../hbase/client/TestAsyncClusterAdminApi.html     |   137 +-
 .../hbase/client/TestAsyncClusterAdminApi2.html    |    12 +
 .../client/TestAsyncDecommissionAdminApi.html      |    12 +
 .../hbase/client/TestAsyncNamespaceAdminApi.html   |    12 +
 .../hbase/client/TestAsyncProcedureAdminApi.html   |    12 +
 .../hbase/client/TestAsyncQuotaAdminApi.html       |    12 +
 .../hbase/client/TestAsyncRegionAdminApi.html      |    12 +
 .../hbase/client/TestAsyncRegionAdminApi2.html     |    12 +
 .../hbase/client/TestAsyncReplicationAdminApi.html |    12 +
 .../TestAsyncReplicationAdminApiWithClusters.html  |    12 +
 .../hbase/client/TestAsyncSnapshotAdminApi.html    |    12 +
 .../hbase/client/TestAsyncTableAdminApi.html       |    12 +
 .../hbase/client/TestAsyncTableAdminApi2.html      |    12 +
 .../hbase/client/TestAsyncTableAdminApi3.html      |    12 +
 .../hadoop/hbase/client/TestAsyncToolAdminApi.html |    12 +
 .../apache/hadoop/hbase/client/TestConnection.html |    48 +-
 ...ientSide3.WaitingForMultiMutationsObserver.html |    10 +-
 ...TestFromClientSide3.WaitingForScanObserver.html |    12 +-
 .../hadoop/hbase/client/TestFromClientSide3.html   |   104 +-
 .../hadoop/hbase/client/TestFromClientSide5.html   |   112 +-
 .../TestFromClientSideScanExcpetion.MyHStore.html  |     2 +-
 .../hadoop/hbase/client/TestMetaWithReplicas.html  |    32 +-
 .../hbase/client/TestUpdateConfiguration.html      |    49 +-
 .../class-use/AbstractTestUpdateConfiguration.html |   289 +
 .../apache/hadoop/hbase/client/package-frame.html  |     1 +
 .../hadoop/hbase/client/package-summary.html       |   610 +-
 .../apache/hadoop/hbase/client/package-tree.html   |    50 +-
 .../apache/hadoop/hbase/client/package-use.html    |    84 +-
 .../coprocessor/ColumnAggregationEndpoint.html     |    40 +-
 .../ColumnAggregationEndpointNullResponse.html     |    40 +-
 .../ColumnAggregationEndpointWithErrors.html       |    40 +-
 .../coprocessor/ProtobufCoprocessorService.html    |   114 +-
 ...rocessorEndpoint.DummyRegionServerEndpoint.html |    64 +-
 .../coprocessor/TestAsyncCoprocessorEndpoint.html  |    32 +-
 .../coprocessor/TestBatchCoprocessorEndpoint.html  |    58 +-
 .../hbase/coprocessor/TestCoprocessorEndpoint.html |    50 +-
 ...estCoprocessorMetrics.CustomMasterObserver.html |    16 +-
 ...estCoprocessorMetrics.CustomRegionEndpoint.html |    40 +-
 ...estCoprocessorMetrics.CustomRegionObserver.html |    12 +-
 ...stCoprocessorMetrics.CustomRegionObserver2.html |     4 +-
 ...rocessorMetrics.CustomRegionServerObserver.html |    12 +-
 .../TestCoprocessorMetrics.CustomWALObserver.html  |    16 +-
 .../hbase/coprocessor/TestCoprocessorMetrics.html  |    46 +-
 ...kwardCompatibility.DummyCoprocessorService.html |   418 -
 .../TestCoprocessorSharedConnection.html           |     4 +-
 .../coprocessor/TestCoprocessorTableEndpoint.html  |    46 +-
 ...rocessorEndpoint.DummyRegionServerEndpoint.html |    60 +-
 .../TestRegionServerCoprocessorEndpoint.html       |    22 +-
 .../TestRowProcessorEndpoint.IncrementRunner.html  |     6 +-
 ...rocessorEndpoint.FriendsOfFriendsProcessor.html |    42 +-
 ...rocessorEndpoint.IncrementCounterProcessor.html |    40 +-
 ...oint.RowProcessorEndpoint.RowSwapProcessor.html |    46 +-
 ...oint.RowProcessorEndpoint.TimeoutProcessor.html |    44 +-
 ...tRowProcessorEndpoint.RowProcessorEndpoint.html |    22 +-
 .../TestRowProcessorEndpoint.SwapRowsRunner.html   |     6 +-
 .../coprocessor/TestRowProcessorEndpoint.html      |    76 +-
 .../hadoop/hbase/coprocessor/TestSecureExport.html |    86 +-
 ...kwardCompatibility.DummyCoprocessorService.html |   125 -
 ...estCoprocessorServiceBackwardCompatibility.html |   125 -
 ...sEndpoint.HStoreWithFaultyRefreshHFilesAPI.html |     2 +-
 .../hadoop/hbase/coprocessor/package-frame.html    |     2 -
 .../hadoop/hbase/coprocessor/package-summary.html  |    14 +-
 .../hadoop/hbase/coprocessor/package-tree.html     |    30 +-
 .../apache/hadoop/hbase/io/hfile/package-tree.html |     2 +-
 .../hadoop/hbase/ipc/TestCoprocessorRpcUtils.html  |     8 +-
 .../hbase/master/MockNoopMasterServices.html       |   174 +-
 .../MockRegionServer.RegionNameAndIndex.html       |    12 +-
 .../hadoop/hbase/master/MockRegionServer.html      |   204 +-
 ...erCoprocessorServices.MockAccessController.html |    88 +-
 ...processorServices.MockVisibilityController.html |    88 +-
 .../master/TestMasterCoprocessorServices.html      |    14 +-
 .../TestSplitLogManager.DummyMasterServices.html   |     2 +-
 .../master/assignment/MockMasterServices.html      |     2 +-
 .../apache/hadoop/hbase/master/package-tree.html   |     4 +-
 .../org/apache/hadoop/hbase/package-tree.html      |    12 +-
 .../hadoop/hbase/procedure/package-tree.html       |     8 +-
 .../hadoop/hbase/procedure2/package-tree.html      |     4 +-
 ...sTable.RegionScannerToResultScannerAdaptor.html |    20 +-
 .../hadoop/hbase/regionserver/RegionAsTable.html   |   154 +-
 .../regionserver/TestHRegion.HStoreForTesting.html |     2 +-
 .../hbase/regionserver/TestHStore.MyStore.html     |     2 +-
 .../TestServerCustomProtocol.PingHandler.html      |   114 +-
 .../regionserver/TestServerCustomProtocol.html     |    98 +-
 .../hadoop/hbase/regionserver/package-tree.html    |     8 +-
 .../TestMigrateRSGroupInfo.HMasterForTest.html     |     6 +-
 .../hbase/rsgroup/TestMigrateRSGroupInfo.html      |    22 +-
 .../hbase/rsgroup/VerifyingRSGroupAdmin.html       |   348 +-
 ...tAccessController.BulkLoadAccessTestAction.html |    10 +-
 .../TestAccessController.BulkLoadHelper.html       |    18 +-
 ...ssController.MyShellBasedUnixGroupsMapping.html |     6 +-
 .../TestAccessController.PingCoprocessor.html      |   112 +-
 ...TestAccessController.TestTableDDLProcedure.html |    22 +-
 .../security/access/TestAccessController.html      |   258 +-
 .../TestAccessController2.MyAccessController.html  |     2 +-
 ...stAccessController3.FaultyAccessController.html |     2 +-
 .../security/access/TestNamespaceCommands.html     |    88 +-
 .../access/TestRpcAccessChecks.Action.html         |     4 +-
 .../access/TestRpcAccessChecks.DummyCpService.html |     8 +-
 .../hbase/security/access/TestRpcAccessChecks.html |    64 +-
 .../hadoop/hbase/security/access/package-tree.html |     4 +-
 .../hbase/security/token/TestClientTokenUtil.html  |    23 +-
 .../token/TestGenerateDelegationToken.html         |    16 +-
 ...uthentication.NonShadedBlockingRpcCallback.html |   374 -
 .../token/TestTokenAuthentication.TokenServer.html |   108 +-
 .../security/token/TestTokenAuthentication.html    |    38 +-
 ...uthentication.NonShadedBlockingRpcCallback.html |   125 -
 .../hadoop/hbase/security/token/package-frame.html |     1 -
 .../hbase/security/token/package-summary.html      |    16 +-
 .../hadoop/hbase/security/token/package-tree.html  |     5 +-
 ...tVisibilityLabelsOpWithDifferentUsersNoACL.html |    32 +-
 .../TestVisibilityLabelsReplication.SimpleCP.html  |     8 +-
 ...lsReplication.TestCoprocessorForTagsAtSink.html |    10 +-
 ...ation.VisibilityReplicationEndPointForTest.html |    10 +-
 .../TestVisibilityLabelsReplication.html           |    86 +-
 .../visibility/TestVisibilityLabelsWithACL.html    |    50 +-
 ...VisibilityLabelsWithDefaultVisLabelService.html |    20 +-
 ...TestVisibilityLabelsWithDeletes.DeleteMark.html |    16 +-
 .../TestVisibilityLabelsWithDeletes.html           |   116 +-
 .../visibility/TestVisibilityLablesWithGroups.html |    42 +-
 .../visibility/TestVisibilityWithCheckAuths.html   |    38 +-
 .../visibility/TestWithDisabledAuthorization.html  |    38 +-
 .../VisibilityLabelsWithDeletesTestBase.html       |    60 +-
 .../org/apache/hadoop/hbase/test/package-tree.html |     4 +-
 ...HBaseServiceHandler.DelayingRegionObserver.html |    14 +-
 .../thrift2/TestThriftHBaseServiceHandler.html     |   142 +-
 .../apache/hadoop/hbase/wal/TestWALFiltering.html  |     6 +-
 .../hadoop/hbase/wal/TestWALSplitToHFile.html      |   104 +-
 .../org/apache/hadoop/hbase/wal/package-tree.html  |     4 +-
 testdevapidocs/overview-tree.html                  |    81 +-
 .../hadoop/hbase/IntegrationTestMetaReplicas.html  |   176 +-
 .../hadoop/hbase/MockRegionServerServices.html     |   725 +-
 .../client/AbstractTestUpdateConfiguration.html    |   188 +
 .../hadoop/hbase/client/DummyAsyncTable.html       |   293 +-
 .../hadoop/hbase/client/TestAsyncAdminBase.html    |     2 +-
 .../hbase/client/TestAsyncClusterAdminApi.html     |   580 +-
 .../apache/hadoop/hbase/client/TestConnection.html |   785 +-
 ...ientSide3.WaitingForMultiMutationsObserver.html |  2065 +--
 ...TestFromClientSide3.WaitingForScanObserver.html |  2065 +--
 .../hadoop/hbase/client/TestFromClientSide3.html   |  2065 +--
 .../hadoop/hbase/client/TestFromClientSide5.html   |  5126 +++---
 .../hadoop/hbase/client/TestMetaWithReplicas.html  |   623 +-
 .../hbase/client/TestUpdateConfiguration.html      |   195 +-
 .../coprocessor/ColumnAggregationEndpoint.html     |    42 +-
 .../ColumnAggregationEndpointNullResponse.html     |    46 +-
 .../ColumnAggregationEndpointWithErrors.html       |    48 +-
 .../coprocessor/ProtobufCoprocessorService.html    |   153 +-
 ...rocessorEndpoint.DummyRegionServerEndpoint.html |   282 +-
 .../coprocessor/TestAsyncCoprocessorEndpoint.html  |   282 +-
 .../coprocessor/TestBatchCoprocessorEndpoint.html  |   532 +-
 .../hbase/coprocessor/TestCoprocessorEndpoint.html |   658 +-
 ...estCoprocessorMetrics.CustomMasterObserver.html |  1105 +-
 ...estCoprocessorMetrics.CustomRegionEndpoint.html |  1105 +-
 ...estCoprocessorMetrics.CustomRegionObserver.html |  1105 +-
 ...stCoprocessorMetrics.CustomRegionObserver2.html |  1105 +-
 ...rocessorMetrics.CustomRegionServerObserver.html |  1105 +-
 .../TestCoprocessorMetrics.CustomWALObserver.html  |  1105 +-
 .../hbase/coprocessor/TestCoprocessorMetrics.html  |  1105 +-
 ...kwardCompatibility.DummyCoprocessorService.html |   200 -
 ...estCoprocessorServiceBackwardCompatibility.html |   200 -
 .../coprocessor/TestCoprocessorTableEndpoint.html  |   354 +-
 ...rocessorEndpoint.DummyRegionServerEndpoint.html |   212 +-
 .../TestRegionServerCoprocessorEndpoint.html       |   212 +-
 .../TestRowProcessorEndpoint.IncrementRunner.html  |  1310 +-
 ...rocessorEndpoint.FriendsOfFriendsProcessor.html |  1310 +-
 ...rocessorEndpoint.IncrementCounterProcessor.html |  1310 +-
 ...oint.RowProcessorEndpoint.RowSwapProcessor.html |  1310 +-
 ...oint.RowProcessorEndpoint.TimeoutProcessor.html |  1310 +-
 ...tRowProcessorEndpoint.RowProcessorEndpoint.html |  1310 +-
 .../TestRowProcessorEndpoint.SwapRowsRunner.html   |  1310 +-
 .../coprocessor/TestRowProcessorEndpoint.html      |  1310 +-
 .../hadoop/hbase/coprocessor/TestSecureExport.html |   841 +-
 .../hadoop/hbase/ipc/TestCoprocessorRpcUtils.html  |    60 +-
 .../hbase/master/MockNoopMasterServices.html       |   973 +-
 .../MockRegionServer.RegionNameAndIndex.html       |  1351 +-
 .../hadoop/hbase/master/MockRegionServer.html      |  1351 +-
 ...erCoprocessorServices.MockAccessController.html |   302 +-
 ...processorServices.MockVisibilityController.html |   302 +-
 .../master/TestMasterCoprocessorServices.html      |   302 +-
 ...sTable.RegionScannerToResultScannerAdaptor.html |   603 +-
 .../hadoop/hbase/regionserver/RegionAsTable.html   |   603 +-
 .../TestServerCustomProtocol.PingHandler.html      |   926 +-
 .../regionserver/TestServerCustomProtocol.html     |   926 +-
 .../TestMigrateRSGroupInfo.HMasterForTest.html     |   303 +-
 .../hbase/rsgroup/TestMigrateRSGroupInfo.html      |   303 +-
 .../hbase/rsgroup/VerifyingRSGroupAdmin.html       |  1667 +-
 .../access/SecureTestUtil.AccessTestAction.html    |    90 +-
 .../access/SecureTestUtil.MasterSyncObserver.html  |    90 +-
 .../hbase/security/access/SecureTestUtil.html      |    90 +-
 ...tAccessController.BulkLoadAccessTestAction.html |  7395 ++++----
 .../TestAccessController.BulkLoadHelper.html       |  7395 ++++----
 ...ssController.MyShellBasedUnixGroupsMapping.html |  7395 ++++----
 .../TestAccessController.PingCoprocessor.html      |  7395 ++++----
 ...TestAccessController.TestTableDDLProcedure.html |  7395 ++++----
 .../security/access/TestAccessController.html      |  7395 ++++----
 .../security/access/TestNamespaceCommands.html     |   973 +-
 .../access/TestRpcAccessChecks.Action.html         |   836 +-
 .../access/TestRpcAccessChecks.DummyCpService.html |   836 +-
 .../hbase/security/access/TestRpcAccessChecks.html |   836 +-
 .../hbase/security/token/TestClientTokenUtil.html  |   113 +-
 .../token/TestGenerateDelegationToken.html         |   157 +-
 ...uthentication.NonShadedBlockingRpcCallback.html |   631 -
 .../token/TestTokenAuthentication.TokenServer.html |  1018 +-
 .../security/token/TestTokenAuthentication.html    |  1018 +-
 .../security/visibility/TestVisibilityLabels.html  |    92 +-
 ...tVisibilityLabelsOpWithDifferentUsersNoACL.html |   324 +-
 .../TestVisibilityLabelsReplication.SimpleCP.html  |   837 +-
 ...lsReplication.TestCoprocessorForTagsAtSink.html |   837 +-
 ...ation.VisibilityReplicationEndPointForTest.html |   837 +-
 .../TestVisibilityLabelsReplication.html           |   837 +-
 .../visibility/TestVisibilityLabelsWithACL.html    |   654 +-
 ...VisibilityLabelsWithDefaultVisLabelService.html |   450 +-
 ...TestVisibilityLabelsWithDeletes.DeleteMark.html |  6085 +++----
 .../TestVisibilityLabelsWithDeletes.html           |  6085 +++----
 .../visibility/TestVisibilityLablesWithGroups.html |   676 +-
 .../visibility/TestVisibilityWithCheckAuths.html   |   381 +-
 .../visibility/TestWithDisabledAuthorization.html  |   452 +-
 .../VisibilityLabelsWithDeletesTestBase.html       |   547 +-
 ...HBaseServiceHandler.DelayingRegionObserver.html |  3419 ++--
 .../thrift2/TestThriftHBaseServiceHandler.html     |  3419 ++--
 .../apache/hadoop/hbase/wal/TestWALFiltering.html  |    50 +-
 .../hadoop/hbase/wal/TestWALSplitToHFile.html      |  1014 +-
 755 files changed, 424169 insertions(+), 428375 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index 0d26a05..abb09f9 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -467,7 +467,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2020
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2020-03-22</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2020-03-23</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index a80a934..bc034be 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.rc.2, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20200322150631+00'00')
-/CreationDate (D:20200322151625+00'00')
+/ModDate (D:20200323194515+00'00')
+/CreationDate (D:20200323195852+00'00')
 >>
 endobj
 2 0 obj
diff --git a/apidocs/deprecated-list.html b/apidocs/deprecated-list.html
index d5fc360..02735de 100644
--- a/apidocs/deprecated-list.html
+++ b/apidocs/deprecated-list.html
@@ -534,7 +534,7 @@
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-">org.apache.hadoop.hbase.client.Table.batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R)</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-">org.apache.hadoop.hbase.client.Table.batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R)</a>
 <div class="block"><span class="deprecationComment">since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
              interface for of a protobuf stub, so it is not possible to do it in an asynchronous
              way, even if now we are building the <a href="org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client"><code>Table</code></a> implementation based on the
@@ -543,7 +543,7 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">org.apache.hadoop.hbase.client.Table.batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R, Batch.Callback&lt;R&gt;)</a>
+<td class="colOne"><a href="org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">org.apache.hadoop.hbase.client.Table.batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R, Batch.Callback&lt;R&gt;)</a>
 <div class="block"><span class="deprecationComment">since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
              interface for of a protobuf stub, so it is not possible to do it in an asynchronous
              way, even if now we are building the <a href="org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client"><code>Table</code></a> implementation based on the
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 0958b34..e303673 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -742,7 +742,7 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/client/RemoteHTable.html#batchCallback-java.util.List-java.lang.Object:A-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCallback(List&lt;? extends Row&gt;, Object[], Batch.Callback&lt;R&gt;)</a></span> - Method in class org.apache.hadoop.hbase.rest.client.<a href="org/apache/hadoop/hbase/rest/client/RemoteHTable.html" title="class in org.apache.hadoop.hbase.rest.client">RemoteHTable</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-">batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-">batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hado [...]
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
 <div class="block"><span class="deprecationComment">since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
@@ -752,7 +752,7 @@
              <a href="org/apache/hadoop/hbase/client/AsyncTable.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncTable</code></a> directly instead.</span></div>
 </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R, Batch.Callback&lt;R&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Table.html" title="i [...]
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R, Batch.Callback&lt;R&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a h [...]
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>
 <div class="block"><span class="deprecationComment">since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
@@ -762,9 +762,9 @@
              <a href="org/apache/hadoop/hbase/client/AsyncTable.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncTable</code></a> directly instead.</span></div>
 </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/client/RemoteHTable.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-">batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R)</a></span> - Method in class org.apache.hadoop.hbase.rest.client.<a href="org/apache/hadoop/hbase/rest/client/RemoteHTable.html" title="class in org.apache.hadoop.hbase.rest.client">RemoteHTable< [...]
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/client/RemoteHTable.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-">batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R)</a></span> - Method in class org.apache.hadoop.hbase.rest.client.<a href="org/apache/hadoop/hbase/rest/client/RemoteHTable.html" title="cla [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/client/RemoteHTable.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R, Batch.Callback&lt;R&gt;)</a></span> - Method in class org.apache.hadoop.hbase.rest.client.<a href="org/apache/hadoop/hbase/rest/client/Re [...]
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/client/RemoteHTable.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[], byte[], R, Batch.Callback&lt;R&gt;)</a></span> - Method in class org.apache.hadoop.hbase.res [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/TimeRange.html#between-long-long-">between(long, long)</a></span> - Static method in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></dt>
 <dd>
@@ -1082,7 +1082,7 @@
 <dd>
 <div class="block">Calculates the number of MapReduce input splits for the map tasks.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ServiceCaller.html#call-S-com.google.protobuf.RpcController-com.google.protobuf.RpcCallback-">call(S, RpcController, RpcCallback&lt;R&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ServiceCaller.html#call-S-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback-">call(S, RpcController, RpcCallback&lt;R&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a></dt>
 <dd>
 <div class="block">Represent the actual protobuf rpc call.</div>
 </dd>
diff --git a/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html b/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html
index abd6655..e6f6b1b 100644
--- a/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html
+++ b/apidocs/org/apache/hadoop/hbase/class-use/ServerName.html
@@ -369,7 +369,7 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.ServerName-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</ [...]
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.ServerName-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</ [...]
                   <a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                   <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block">Execute the given coprocessor call on the given region server.</div>
diff --git a/apidocs/org/apache/hadoop/hbase/client/AsyncAdmin.html b/apidocs/org/apache/hadoop/hbase/client/AsyncAdmin.html
index da67536..98a8e3b 100644
--- a/apidocs/org/apache/hadoop/hbase/client/AsyncAdmin.html
+++ b/apidocs/org/apache/hadoop/hbase/client/AsyncAdmin.html
@@ -102,7 +102,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.62">AsyncAdmin</a></pre>
+public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.63">AsyncAdmin</a></pre>
 <div class="block">The asynchronous administrative API for HBase.</div>
 <dl>
 <dt><span class="simpleTagLabel">Since:</span></dt>
@@ -322,14 +322,14 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 </tr>
 <tr id="i29" class="rowColor">
 <td class="colFirst"><code>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;com.google.protobuf.RpcChannel,S&gt;&nbsp;stubMaker,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel,S&gt;&nbsp;stubMaker,
                   <a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable)</code>
 <div class="block">Execute the given coprocessor call on the master.</div>
 </td>
 </tr>
 <tr id="i30" class="altColor">
 <td class="colFirst"><code>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.ServerName-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;com.google.protobuf.RpcChannel,S&gt;&nbs [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.ServerName-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;org.apache.hbase.thirdparty.com.google.p [...]
                   <a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                   <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block">Execute the given coprocessor call on the given region server.</div>
@@ -1313,7 +1313,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>tableExists</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.69">tableExists</a>(<a href="../../../../../org/apache/hadoo [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.70">tableExists</a>(<a href="../../../../../org/apache/hadoo [...]
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>tableName</code> - Table to check.</dd>
@@ -1329,7 +1329,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptors</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor [...]
 <div class="block">List all the userspace tables.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1343,7 +1343,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptors</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&gt;& [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&gt;& [...]
 <div class="block">List all the tables.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1359,7 +1359,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptors</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&gt;& [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&gt;& [...]
                                                               boolean&nbsp;includeSysTables)</pre>
 <div class="block">List all the tables matching the given pattern.</div>
 <dl>
@@ -1377,7 +1377,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptors</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&gt;& [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&gt;& [...]
 <div class="block">List specific tables including system tables.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1393,7 +1393,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptorsByNamespace</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&gt;& [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&gt;& [...]
 <div class="block">Get list of table descriptors by namespace.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1409,7 +1409,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableNames</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&gt;&nbsp;<a href="../ [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&gt;&nbsp;<a href="../ [...]
 <div class="block">List all of the names of userspace tables.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1425,7 +1425,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableNames</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&gt;&nbsp;<a href="../../../../../s [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&gt;&nbsp;<a href="../../../../../s [...]
 <div class="block">List all of the names of tables.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1441,7 +1441,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableNames</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&gt;&nbsp;<a href="../../../../../s [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&gt;&nbsp;<a href="../../../../../s [...]
                                                   boolean&nbsp;includeSysTables)</pre>
 <div class="block">List all of the names of userspace tables.</div>
 <dl>
@@ -1459,7 +1459,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableNamesByNamespace</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&gt;&nbsp;<a href="../../../../../s [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&gt;&nbsp;<a href="../../../../../s [...]
 <div class="block">Get list of table names by namespace.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1475,7 +1475,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>getDescriptor</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.145">getDescriptor</a>(<a href="../../../../../org/apac [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.146">getDescriptor</a>(<a href="../../../../../org/apac [...]
 <div class="block">Method for getting the tableDescriptor</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1491,7 +1491,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.151">createTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.152">createTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
 <div class="block">Creates a new table.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1505,7 +1505,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.164">createTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.165">createTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
                                     byte[]&nbsp;startKey,
                                     byte[]&nbsp;endKey,
                                     int&nbsp;numRegions)</pre>
@@ -1529,7 +1529,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.174">createTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.175">createTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
                                     byte[][]&nbsp;splitKeys)</pre>
 <div class="block">Creates a new table with an initial set of empty regions defined by the specified split keys.
  The total number of regions created will be the number of split keys plus one.
@@ -1547,7 +1547,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyTable</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.180">modifyTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.181">modifyTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
 <div class="block">Modify an existing table, more IRB friendly version.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1561,7 +1561,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteTable</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.186">deleteTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.187">deleteTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
 <div class="block">Deletes a table.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1575,7 +1575,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>truncateTable</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.193">truncateTable</a>(<a href="../../../../../org/apache/hadoop/h [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.194">truncateTable</a>(<a href="../../../../../org/apache/hadoop/h [...]
                                       boolean&nbsp;preserveSplits)</pre>
 <div class="block">Truncate a table.</div>
 <dl>
@@ -1591,7 +1591,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>enableTable</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.199">enableTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.200">enableTable</a>(<a href="../../../../../org/apache/hadoop/hba [...]
 <div class="block">Enable a table. The table has to be in disabled state for it to be enabled.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1605,7 +1605,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>disableTable</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.205">disableTable</a>(<a href="../../../../../org/apache/hadoop/hb [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.206">disableTable</a>(<a href="../../../../../org/apache/hadoop/hb [...]
 <div class="block">Disable a table. The table has to be in enabled state for it to be disabled.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1619,7 +1619,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>isTableEnabled</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.212">isTableEnabled</a>(<a href="../../../../../org/apache/h [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.213">isTableEnabled</a>(<a href="../../../../../org/apache/h [...]
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>tableName</code> - name of table to check</dd>
@@ -1635,7 +1635,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>isTableDisabled</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.219">isTableDisabled</a>(<a href="../../../../../org/apache/ [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.220">isTableDisabled</a>(<a href="../../../../../org/apache/ [...]
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>tableName</code> - name of table to check</dd>
@@ -1651,7 +1651,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>isTableAvailable</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.226">isTableAvailable</a>(<a href="../../../../../org/apache [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.227">isTableAvailable</a>(<a href="../../../../../org/apache [...]
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>tableName</code> - name of table to check</dd>
@@ -1667,7 +1667,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>addColumnFamily</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.233">addColumnFamily</a>(<a href="../../../../../org/apache/hadoop [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.234">addColumnFamily</a>(<a href="../../../../../org/apache/hadoop [...]
                                         <a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;columnFamily)</pre>
 <div class="block">Add a column family to an existing table.</div>
 <dl>
@@ -1683,7 +1683,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteColumnFamily</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.241">deleteColumnFamily</a>(<a href="../../../../../org/apache/had [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.242">deleteColumnFamily</a>(<a href="../../../../../org/apache/had [...]
                                            byte[]&nbsp;columnFamily)</pre>
 <div class="block">Delete a column family from a table.</div>
 <dl>
@@ -1699,7 +1699,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyColumnFamily</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.248">modifyColumnFamily</a>(<a href="../../../../../org/apache/had [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.249">modifyColumnFamily</a>(<a href="../../../../../org/apache/had [...]
                                            <a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;columnFamily)</pre>
 <div class="block">Modify an existing column family on a table.</div>
 <dl>
@@ -1715,7 +1715,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>createNamespace</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.255">createNamespace</a>(<a href="../../../../../org/apache/hadoop [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.256">createNamespace</a>(<a href="../../../../../org/apache/hadoop [...]
 <div class="block">Create a new namespace.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1729,7 +1729,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyNamespace</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.261">modifyNamespace</a>(<a href="../../../../../org/apache/hadoop [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.262">modifyNamespace</a>(<a href="../../../../../org/apache/hadoop [...]
 <div class="block">Modify an existing namespace.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1743,7 +1743,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteNamespace</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.267">deleteNamespace</a>(<a href="https://docs.oracle.com/javase/8 [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.268">deleteNamespace</a>(<a href="https://docs.oracle.com/javase/8 [...]
 <div class="block">Delete an existing namespace. Only empty namespaces (no tables) can be removed.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1757,7 +1757,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>getNamespaceDescriptor</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.274">getNamespaceDescriptor</a>(<a href="https://docs.oracle.com/ [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.275">getNamespaceDescriptor</a>(<a href="https://docs.oracle.com/ [...]
 <div class="block">Get a namespace descriptor by name</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1773,7 +1773,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listNamespaces</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a [...]
 <div class="block">List available namespaces</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1787,7 +1787,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>listNamespaceDescriptors</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&gt;&nbsp;<a hr [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&gt;&nbsp;<a hr [...]
 <div class="block">List available namespace descriptors</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1801,7 +1801,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegions</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;<a hr [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;<a hr [...]
 <div class="block">Get all the online regions on a region server.</div>
 </li>
 </ul>
@@ -1811,7 +1811,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegions</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;<a hr [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;<a hr [...]
 <div class="block">Get the regions of a given table.</div>
 </li>
 </ul>
@@ -1821,7 +1821,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>flush</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.302">flush</a>(<a href="../../../../../org/apache/hadoop/hbase/Tab [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.303">flush</a>(<a href="../../../../../org/apache/hadoop/hbase/Tab [...]
 <div class="block">Flush a table.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1835,7 +1835,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>flushRegion</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.308">flushRegion</a>(byte[]&nbsp;regionName)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.309">flushRegion</a>(byte[]&nbsp;regionName)</pre>
 <div class="block">Flush an individual region.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1849,7 +1849,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>flushRegionServer</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.314">flushRegionServer</a>(<a href="../../../../../org/apache/hado [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.315">flushRegionServer</a>(<a href="../../../../../org/apache/hado [...]
 <div class="block">Flush all region on the region server.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1863,7 +1863,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.322">compact</a>(<a href="../../../../../org/apache/h [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.323">compact</a>(<a href="../../../../../org/apache/h [...]
 <div class="block">Compact a table. When the returned CompletableFuture is done, it only means the compact request
  was sent to HBase and may need some time to finish the compact operation.
  Throws <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase"><code>TableNotFoundException</code></a> if table not found.</div>
@@ -1879,7 +1879,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.335">compact</a>(<a href="../../../../../org/apache/h [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.336">compact</a>(<a href="../../../../../org/apache/h [...]
                                         byte[]&nbsp;columnFamily)</pre>
 <div class="block">Compact a column family within a table. When the returned CompletableFuture is done, it only
  means the compact request was sent to HBase and may need some time to finish the compact
@@ -1899,7 +1899,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.347">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/T [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.348">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/T [...]
                                 <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</pre>
 <div class="block">Compact a table. When the returned CompletableFuture is done, it only means the compact request
  was sent to HBase and may need some time to finish the compact operation.
@@ -1918,7 +1918,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.359">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/T [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.360">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/T [...]
                                 byte[]&nbsp;columnFamily,
                                 <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</pre>
 <div class="block">Compact a column family within a table. When the returned CompletableFuture is done, it only
@@ -1940,7 +1940,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>compactRegion</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.367">compactRegion</a>(byte[]&nbsp;regionName)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.368">compactRegion</a>(byte[]&nbsp;regionName)</pre>
 <div class="block">Compact an individual region. When the returned CompletableFuture is done, it only means the
  compact request was sent to HBase and may need some time to finish the compact operation.</div>
 <dl>
@@ -1955,7 +1955,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>compactRegion</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.377">compactRegion</a>(byte[]&nbsp;regionName,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.378">compactRegion</a>(byte[]&nbsp;regionName,
                                       byte[]&nbsp;columnFamily)</pre>
 <div class="block">Compact a column family within a region. When the returned CompletableFuture is done, it only
  means the compact request was sent to HBase and may need some time to finish the compact
@@ -1974,7 +1974,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompact</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.385">majorCompact</a>(<a href="../../../../../org/apa [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.386">majorCompact</a>(<a href="../../../../../org/apa [...]
 <div class="block">Major compact a table. When the returned CompletableFuture is done, it only means the compact
  request was sent to HBase and may need some time to finish the compact operation.
  Throws <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase"><code>TableNotFoundException</code></a> if table not found.</div>
@@ -1990,7 +1990,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompact</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.399">majorCompact</a>(<a href="../../../../../org/apa [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.400">majorCompact</a>(<a href="../../../../../org/apa [...]
                                              byte[]&nbsp;columnFamily)</pre>
 <div class="block">Major compact a column family within a table. When the returned CompletableFuture is done, it
  only means the compact request was sent to HBase and may need some time to finish the compact
@@ -2011,7 +2011,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompact</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.411">majorCompact</a>(<a href="../../../../../org/apache/hadoop/hb [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.412">majorCompact</a>(<a href="../../../../../org/apache/hadoop/hb [...]
                                      <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</pre>
 <div class="block">Major compact a table. When the returned CompletableFuture is done, it only means the compact
  request was sent to HBase and may need some time to finish the compact operation.
@@ -2030,7 +2030,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompact</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.423">majorCompact</a>(<a href="../../../../../org/apache/hadoop/hb [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.424">majorCompact</a>(<a href="../../../../../org/apache/hadoop/hb [...]
                                      byte[]&nbsp;columnFamily,
                                      <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</pre>
 <div class="block">Major compact a column family within a table. When the returned CompletableFuture is done, it
@@ -2052,7 +2052,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactRegion</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.431">majorCompactRegion</a>(byte[]&nbsp;regionName)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.432">majorCompactRegion</a>(byte[]&nbsp;regionName)</pre>
 <div class="block">Major compact a region. When the returned CompletableFuture is done, it only means the compact
  request was sent to HBase and may need some time to finish the compact operation.</div>
 <dl>
@@ -2067,7 +2067,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactRegion</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.441">majorCompactRegion</a>(byte[]&nbsp;regionName,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.442">majorCompactRegion</a>(byte[]&nbsp;regionName,
                                            byte[]&nbsp;columnFamily)</pre>
 <div class="block">Major compact a column family within region. When the returned CompletableFuture is done, it
  only means the compact request was sent to HBase and may need some time to finish the compact
@@ -2086,7 +2086,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>compactRegionServer</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.447">compactRegionServer</a>(<a href="../../../../../org/apache/ha [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.448">compactRegionServer</a>(<a href="../../../../../org/apache/ha [...]
 <div class="block">Compact all regions on the region server.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2100,7 +2100,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactRegionServer</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.453">majorCompactRegionServer</a>(<a href="../../../../../org/apac [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.454">majorCompactRegionServer</a>(<a href="../../../../../org/apac [...]
 <div class="block">Compact all regions on the region server.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2114,7 +2114,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeSwitch</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.460">mergeSwitch</a>(boolean&nbsp;enabled)</pre>
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.461">mergeSwitch</a>(boolean&nbsp;enabled)</pre>
 <div class="block">Turn the Merge switch on or off.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2130,7 +2130,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeSwitch</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.475">mergeSwitch</a>(boolean&nbsp;enabled,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.476">mergeSwitch</a>(boolean&nbsp;enabled,
                                        boolean&nbsp;drainMerges)</pre>
 <div class="block">Turn the Merge switch on or off.
  <p/>
@@ -2153,7 +2153,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>isMergeEnabled</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.482">isMergeEnabled</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.483">isMergeEnabled</a>()</pre>
 <div class="block">Query the current state of the Merge switch.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -2168,7 +2168,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>splitSwitch</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.489">splitSwitch</a>(boolean&nbsp;enabled)</pre>
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.490">splitSwitch</a>(boolean&nbsp;enabled)</pre>
 <div class="block">Turn the Split switch on or off.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2184,7 +2184,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>splitSwitch</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.504">splitSwitch</a>(boolean&nbsp;enabled,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.505">splitSwitch</a>(boolean&nbsp;enabled,
                                        boolean&nbsp;drainSplits)</pre>
 <div class="block">Turn the Split switch on or off.
  <p/>
@@ -2207,7 +2207,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>isSplitEnabled</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.511">isSplitEnabled</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.512">isSplitEnabled</a>()</pre>
 <div class="block">Query the current state of the Split switch.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -2223,7 +2223,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <li class="blockList">
 <h4>mergeRegions</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.523">mergeRegions</a>(byte[]&nbsp;nameOfRegionA,
+default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.524">mergeRegions</a>(byte[]&nbsp;nameOfRegionA,
                                                          byte[]&nbsp;nameOfRegionB,
                                                          boolean&nbsp;forcible)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.3.0 and will be removed in 4.0.0.Use <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#mergeRegions-java.util.List-boolean-"><code>mergeRegions(List, boolean)</code></a>
@@ -2244,7 +2244,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeRegions</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.534">mergeRegions</a>(<a href="https://docs.oracle.com/javase/8/do [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.535">mergeRegions</a>(<a href="https://docs.oracle.com/javase/8/do [...]
                                      boolean&nbsp;forcible)</pre>
 <div class="block">Merge multiple regions (>=2).</div>
 <dl>
@@ -2261,7 +2261,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.540">split</a>(<a href="../../../../../org/apache/hadoop/hbase/Tab [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.541">split</a>(<a href="../../../../../org/apache/hadoop/hbase/Tab [...]
 <div class="block">Split a table. The method will execute split action for each region in table.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2275,7 +2275,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>splitRegion</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.546">splitRegion</a>(byte[]&nbsp;regionName)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.547">splitRegion</a>(byte[]&nbsp;regionName)</pre>
 <div class="block">Split an individual region.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2289,7 +2289,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.553">split</a>(<a href="../../../../../org/apache/hadoop/hbase/Tab [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.554">split</a>(<a href="../../../../../org/apache/hadoop/hbase/Tab [...]
                               byte[]&nbsp;splitPoint)</pre>
 <div class="block">Split a table.</div>
 <dl>
@@ -2305,7 +2305,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>splitRegion</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.561">splitRegion</a>(byte[]&nbsp;regionName,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.562">splitRegion</a>(byte[]&nbsp;regionName,
                                     byte[]&nbsp;splitPoint)</pre>
 <div class="block">Split an individual region.</div>
 <dl>
@@ -2322,7 +2322,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>assign</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.566">assign</a>(byte[]&nbsp;regionName)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.567">assign</a>(byte[]&nbsp;regionName)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>regionName</code> - Encoded or full name of region to assign.</dd>
@@ -2335,7 +2335,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>unassign</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.578">unassign</a>(byte[]&nbsp;regionName,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.579">unassign</a>(byte[]&nbsp;regionName,
                                  boolean&nbsp;forcible)</pre>
 <div class="block">Unassign a region from current hosting regionserver. Region will then be assigned to a
  regionserver chosen at random. Region could be reassigned back to the same server. Use
@@ -2356,7 +2356,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>offline</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.588">offline</a>(byte[]&nbsp;regionName)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.589">offline</a>(byte[]&nbsp;regionName)</pre>
 <div class="block">Offline specified region from master's in-memory state. It will not attempt to reassign the
  region as in unassign. This API can be used when a region not served by any region server and
  still online as per Master's in memory state. If this API is incorrectly used on active region
@@ -2374,7 +2374,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>move</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.594">move</a>(byte[]&nbsp;regionName)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.595">move</a>(byte[]&nbsp;regionName)</pre>
 <div class="block">Move the region <code>r</code> to a random server.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2388,7 +2388,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>move</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.603">move</a>(byte[]&nbsp;regionName,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.604">move</a>(byte[]&nbsp;regionName,
                              <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServerName)</pre>
 <div class="block">Move the region <code>r</code> to <code>dest</code>.</div>
 <dl>
@@ -2406,7 +2406,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>setQuota</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.609">setQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/ [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.610">setQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/ [...]
 <div class="block">Apply the new quota settings.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2420,7 +2420,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getQuota</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&gt;&gt;&nbsp;<a  [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&gt;&gt;&nbsp;<a  [...]
 <div class="block">List the quotas based on the filter.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2436,7 +2436,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>addReplicationPeer</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.623">addReplicationPeer</a>(<a href="https://docs.ora [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.624">addReplicationPeer</a>(<a href="https://docs.ora [...]
                                                    <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)</pre>
 <div class="block">Add a new replication peer for replicating data to slave cluster</div>
 <dl>
@@ -2452,7 +2452,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>addReplicationPeer</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.634">addReplicationPeer</a>(<a href="https://docs.oracle.com/javas [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.635">addReplicationPeer</a>(<a href="https://docs.oracle.com/javas [...]
                                            <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig,
                                            boolean&nbsp;enabled)</pre>
 <div class="block">Add a new replication peer for replicating data to slave cluster</div>
@@ -2470,7 +2470,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>removeReplicationPeer</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.641">removeReplicationPeer</a>(<a href="https://docs.oracle.com/ja [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.642">removeReplicationPeer</a>(<a href="https://docs.oracle.com/ja [...]
 <div class="block">Remove a peer and stop the replication</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2484,7 +2484,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>enableReplicationPeer</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.647">enableReplicationPeer</a>(<a href="https://docs.oracle.com/ja [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.648">enableReplicationPeer</a>(<a href="https://docs.oracle.com/ja [...]
 <div class="block">Restart the replication stream to the specified peer</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2498,7 +2498,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>disableReplicationPeer</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.653">disableReplicationPeer</a>(<a href="https://docs.oracle.com/j [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.654">disableReplicationPeer</a>(<a href="https://docs.oracle.com/j [...]
 <div class="block">Stop the replication stream to the specified peer</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2512,7 +2512,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationPeerConfig</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.660">getReplicationPeerConfig</a>(<a  [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.661">getReplicationPeerConfig</a>(<a  [...]
 <div class="block">Returns the configured ReplicationPeerConfig for the specified peer</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2528,7 +2528,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>updateReplicationPeerConfig</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.667">updateReplicationPeerConfig</a>(<a href="https://docs.oracle. [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.668">updateReplicationPeerConfig</a>(<a href="https://docs.oracle. [...]
                                                     <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)</pre>
 <div class="block">Update the peerConfig for the specified peer</div>
 <dl>
@@ -2544,7 +2544,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>transitReplicationPeerSyncReplicationState</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.675">transitReplicationPeerSyncReplicationState</a>(<a href="https [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.676">transitReplicationPeerSyncReplicationState</a>(<a href="https [...]
                                                                    <a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a>&nbsp;state)</pre>
 <div class="block">Transit current cluster to a new state in a synchronous replication peer.</div>
 <dl>
@@ -2560,7 +2560,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationPeerSyncReplicationState</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.683">getReplicationPeerSync [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.684">getReplicationPeerSync [...]
 <div class="block">Get the current cluster state in a synchronous replication peer.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2576,7 +2576,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>appendReplicationPeerTableCFs</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.704">appendReplicationPeerTableCFs</a>(<a href="https://docs.oracl [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.705">appendReplicationPeerTableCFs</a>(<a href="https://docs.oracl [...]
                                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase [...]
 <div class="block">Append the replicable table-cf config of the specified peer</div>
 <dl>
@@ -2592,7 +2592,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>removeReplicationPeerTableCFs</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.712">removeReplicationPeerTableCFs</a>(<a href="https://docs.oracl [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.713">removeReplicationPeerTableCFs</a>(<a href="https://docs.oracl [...]
                                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase [...]
 <div class="block">Remove some table-cfs from config of the specified peer</div>
 <dl>
@@ -2608,7 +2608,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listReplicationPeers</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">Replication [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">Replication [...]
 <div class="block">Return a list of replication peers.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -2623,7 +2623,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listReplicationPeers</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">Replication [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">Replication [...]
 <div class="block">Return a list of replication peers.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2640,7 +2640,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listReplicatedTableCFs</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/replication/TableCFs.html" title="class in org.apache.hadoop.hbase.client.replication">TableCFs</a>&gt [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/replication/TableCFs.html" title="class in org.apache.hadoop.hbase.client.replication">TableCFs</a>&gt [...]
 <div class="block">Find all table and column families that are replicated from this cluster</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -2655,7 +2655,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>enableTableReplication</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.741">enableTableReplication</a>(<a href="../../../../../org/apache [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.742">enableTableReplication</a>(<a href="../../../../../org/apache [...]
 <div class="block">Enable a table's replication switch.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2669,7 +2669,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>disableTableReplication</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.747">disableTableReplication</a>(<a href="../../../../../org/apach [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.748">disableTableReplication</a>(<a href="../../../../../org/apach [...]
 <div class="block">Disable a table's replication switch.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2683,7 +2683,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshot</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.761">snapshot</a>(<a href="https://docs.oracle.com/ja [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.762">snapshot</a>(<a href="https://docs.oracle.com/ja [...]
                                          <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Take a snapshot for the given table. If the table is enabled, a FLUSH-type snapshot will be
  taken. If the table is disabled, an offline snapshot is taken. Snapshots are taken
@@ -2706,7 +2706,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshot</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.778">snapshot</a>(<a href="https://docs.oracle.com/ja [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.779">snapshot</a>(<a href="https://docs.oracle.com/ja [...]
                                          <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                          <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client">SnapshotType</a>&nbsp;type)</pre>
 <div class="block">Create typed snapshot of the table. Snapshots are considered unique based on <b>the name of the
@@ -2731,7 +2731,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshot</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.795">snapshot</a>(<a href="../../../../../org/apache/hadoop/hbase/ [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.796">snapshot</a>(<a href="../../../../../org/apache/hadoop/hbase/ [...]
 <div class="block">Take a snapshot and wait for the server to complete that snapshot asynchronously. Snapshots
  are taken sequentially even when requested concurrently, across all tables. Snapshots are
  considered unique based on <b>the name of the snapshot</b>.
@@ -2753,7 +2753,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>isSnapshotFinished</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.811">isSnapshotFinished</a>(<a href="../../../../../org/apac [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.812">isSnapshotFinished</a>(<a href="../../../../../org/apac [...]
 <div class="block">Check the current state of the passed snapshot. There are three possible states:
  <ol>
  <li>running - returns <tt>false</tt></li>
@@ -2778,7 +2778,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.821">restoreSnapshot</a>(<a href="https://docs.oracle.com/javase/8 [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.822">restoreSnapshot</a>(<a href="https://docs.oracle.com/javase/8 [...]
 <div class="block">Restore the specified snapshot on the original table. (The table must be disabled) If the
  "hbase.snapshot.restore.take.failsafe.snapshot" configuration property is set to true, a
  snapshot of the current table is taken before executing the restore operation. In case of
@@ -2796,7 +2796,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.833">restoreSnapshot</a>(<a href="https://docs.oracle [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.834">restoreSnapshot</a>(<a href="https://docs.oracle [...]
                                                 boolean&nbsp;takeFailSafeSnapshot)</pre>
 <div class="block">Restore the specified snapshot on the original table. (The table must be disabled) If
  'takeFailSafeSnapshot' is set to true, a snapshot of the current table is taken before
@@ -2817,7 +2817,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.849">restoreSnapshot</a>(<a href="https://docs.oracle.com/javase/8 [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.850">restoreSnapshot</a>(<a href="https://docs.oracle.com/javase/8 [...]
                                         boolean&nbsp;takeFailSafeSnapshot,
                                         boolean&nbsp;restoreAcl)</pre>
 <div class="block">Restore the specified snapshot on the original table. (The table must be disabled) If
@@ -2840,7 +2840,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>cloneSnapshot</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.857">cloneSnapshot</a>(<a href="https://docs.oracle.c [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.858">cloneSnapshot</a>(<a href="https://docs.oracle.c [...]
                                               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Create a new table by cloning the snapshot content.</div>
 <dl>
@@ -2856,7 +2856,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>cloneSnapshot</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.867">cloneSnapshot</a>(<a href="https://docs.oracle.com/javase/8/d [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.868">cloneSnapshot</a>(<a href="https://docs.oracle.com/javase/8/d [...]
                                       <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                       boolean&nbsp;restoreAcl)</pre>
 <div class="block">Create a new table by cloning the snapshot content.</div>
@@ -2874,7 +2874,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listSnapshots</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;& [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;& [...]
 <div class="block">List completed snapshots.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -2889,7 +2889,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listSnapshots</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;& [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;& [...]
 <div class="block">List all the completed snapshots matching the given pattern.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2905,7 +2905,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableSnapshots</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;& [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;& [...]
 <div class="block">List all the completed snapshots matching the given table name pattern.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2922,7 +2922,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableSnapshots</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;& [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;& [...]
                                                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;snapshotNamePattern)</pre>
 <div class="block">List all the completed snapshots matching the given table name regular expression and snapshot
  name regular expression.</div>
@@ -2942,7 +2942,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteSnapshot</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.907">deleteSnapshot</a>(<a href="https://docs.oracle.com/javase/8/ [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.908">deleteSnapshot</a>(<a href="https://docs.oracle.com/javase/8/ [...]
 <div class="block">Delete an existing snapshot.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2956,7 +2956,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteSnapshots</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.912">deleteSnapshots</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.913">deleteSnapshots</a>()</pre>
 <div class="block">Delete all existing snapshots.</div>
 </li>
 </ul>
@@ -2966,7 +2966,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteSnapshots</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.918">deleteSnapshots</a>(<a href="https://docs.oracle.com/javase/8 [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.919">deleteSnapshots</a>(<a href="https://docs.oracle.com/javase/8 [...]
 <div class="block">Delete existing snapshots whose names match the pattern passed.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2980,7 +2980,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteTableSnapshots</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.924">deleteTableSnapshots</a>(<a href="https://docs.oracle.com/jav [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.925">deleteTableSnapshots</a>(<a href="https://docs.oracle.com/jav [...]
 <div class="block">Delete all existing snapshots matching the given table name pattern.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2994,7 +2994,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteTableSnapshots</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.932">deleteTableSnapshots</a>(<a href="https://docs.oracle.com/jav [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.933">deleteTableSnapshots</a>(<a href="https://docs.oracle.com/jav [...]
                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;snapshotNamePattern)</pre>
 <div class="block">Delete all existing snapshots matching the given table name regular expression and snapshot
  name regular expression.</div>
@@ -3011,7 +3011,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>execProcedure</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.943">execProcedure</a>(<a href="https://docs.oracle.com/javase/8/d [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.944">execProcedure</a>(<a href="https://docs.oracle.com/javase/8/d [...]
                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instance,
                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;props)</pre>
 <div class="block">Execute a distributed procedure on a cluster.</div>
@@ -3031,7 +3031,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>execProcedureWithReturn</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.955">execProcedureWithReturn</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;signature,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.956">execProcedureWithReturn</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;signature,
                                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instance,
                                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;props)</pre>
 <div class="block">Execute a distributed procedure on a cluster.</div>
@@ -3053,7 +3053,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>isProcedureFinished</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.971">isProcedureFinished</a>(<a href="https://docs.oracle.co [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.972">isProcedureFinished</a>(<a href="https://docs.oracle.co [...]
                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instance,
                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;props)</pre>
 <div class="block">Check the current state of the specified procedure. There are three possible states:
@@ -3080,7 +3080,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <li class="blockList">
 <h4>abortProcedure</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.985">abortProcedure</a>(long&nbsp;procId,
+<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.986">abortProcedure</a>(long&nbsp;procId,
                                                       boolean&nbsp;mayInterruptIfRunning)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.1.1 and will be removed in 4.0.0.</span></div>
 <div class="block">Abort a procedure
@@ -3103,7 +3103,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedures</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.991">getProcedures</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.992">getProcedures</a>()</pre>
 <div class="block">List procedures</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3117,7 +3117,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getLocks</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.997">getLocks</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.998">getLocks</a>()</pre>
 <div class="block">List locks.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3131,7 +3131,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>decommissionRegionServers</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1007">decommissionRegionServers</a>(<a href="https://docs.oracle.c [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1008">decommissionRegionServers</a>(<a href="https://docs.oracle.c [...]
                                                   boolean&nbsp;offload)</pre>
 <div class="block">Mark region server(s) as decommissioned to prevent additional regions from getting
  assigned to them. Optionally unload the regions on the servers. If there are multiple servers
@@ -3150,7 +3150,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listDecommissionedRegionServers</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;<a href="../../../../.. [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;<a href="../../../../.. [...]
 <div class="block">List region servers marked as decommissioned, which can not be assigned regions.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3164,7 +3164,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>recommissionRegionServer</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1021">recommissionRegionServer</a>(<a href="../../../../../org/apa [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1022">recommissionRegionServer</a>(<a href="../../../../../org/apa [...]
                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;encodedRegionNames)</pre>
 <div class="block">Remove decommission marker from a region server to allow regions assignments. Load regions onto
  the server if a list of regions is given. Region loading is asynchronous.</div>
@@ -3181,7 +3181,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterMetrics</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1027">getClusterMetrics</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1028">getClusterMetrics</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>cluster status wrapped by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent"><code>CompletableFuture</code></a></dd>
@@ -3194,7 +3194,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterMetrics</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1032">getClusterMetrics</a>(<a href="https://docs.oracle.com/javase/8/d [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1033">getClusterMetrics</a>(<a href="https://docs.oracle.com/javase/8/d [...]
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>cluster status wrapped by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent"><code>CompletableFuture</code></a></dd>
@@ -3207,7 +3207,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaster</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1037">getMaster</a>()</pre>
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1038">getMaster</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>current master server name wrapped by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent"><code>CompletableFuture</code></a></dd>
@@ -3220,7 +3220,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupMasters</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbs [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbs [...]
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>current backup master list wrapped by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent"><code>CompletableFuture</code></a></dd>
@@ -3233,7 +3233,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServers</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbs [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbs [...]
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>current live region servers list wrapped by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent"><code>CompletableFuture</code></a></dd>
@@ -3246,7 +3246,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessorNames</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt [...]
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>a list of master coprocessors wrapped by <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent"><code>CompletableFuture</code></a></dd>
@@ -3259,7 +3259,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterInfoPort</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1069">getMasterInfoPort</a>()</pre>
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1070">getMasterInfoPort</a>()</pre>
 <div class="block">Get the info port of the current master if one is available.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3273,7 +3273,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1077">shutdown</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1078">shutdown</a>()</pre>
 <div class="block">Shuts down the HBase cluster.</div>
 </li>
 </ul>
@@ -3283,7 +3283,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>stopMaster</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1082">stopMaster</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1083">stopMaster</a>()</pre>
 <div class="block">Shuts down the current HBase master only.</div>
 </li>
 </ul>
@@ -3293,7 +3293,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>stopRegionServer</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1088">stopRegionServer</a>(<a href="../../../../../org/apache/hado [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1089">stopRegionServer</a>(<a href="../../../../../org/apache/hado [...]
 <div class="block">Stop the designated regionserver.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3307,7 +3307,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>updateConfiguration</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1094">updateConfiguration</a>(<a href="../../../../../org/apache/h [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1095">updateConfiguration</a>(<a href="../../../../../org/apache/h [...]
 <div class="block">Update the configuration and trigger an online config change on the regionserver.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3321,7 +3321,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>updateConfiguration</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1100">updateConfiguration</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1101">updateConfiguration</a>()</pre>
 <div class="block">Update the configuration and trigger an online config change on all the masters and
  regionservers.</div>
 </li>
@@ -3332,7 +3332,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWALWriter</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1111">rollWALWriter</a>(<a href="../../../../../org/apache/hadoop/ [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1112">rollWALWriter</a>(<a href="../../../../../org/apache/hadoop/ [...]
 <div class="block">Roll the log writer. I.e. for filesystem based write ahead logs, start writing to a new file.
  <p>
  When the returned CompletableFuture is done, it only means the rollWALWriter request was sent
@@ -3351,7 +3351,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>clearCompactionQueues</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1118">clearCompactionQueues</a>(<a href="../../../../../org/apache [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1119">clearCompactionQueues</a>(<a href="../../../../../org/apache [...]
                                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;queues)</pre>
 <div class="block">Clear compacting queues on a region server.</div>
 <dl>
@@ -3367,7 +3367,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionMetrics</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&gt;&nbsp;<a href="../. [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&gt;&nbsp;<a href="../. [...]
 <div class="block">Get a list of <a href="../../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase"><code>RegionMetrics</code></a> of all regions hosted on a region seerver.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3383,7 +3383,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionMetrics</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&gt;&nbsp;<a href="../. [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a>&gt;&gt;&nbsp;<a href="../. [...]
                                                         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Get a list of <a href="../../../../../org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase"><code>RegionMetrics</code></a> of all regions hosted on a region seerver for a table.</div>
 <dl>
@@ -3401,7 +3401,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>isMasterInMaintenanceMode</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1141">isMasterInMaintenanceMode</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1142">isMasterInMaintenanceMode</a>()</pre>
 <div class="block">Check whether master is in maintenance mode</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3416,7 +3416,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionState</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1149">getCompactionState</a>(<a href="../../../ [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1150">getCompactionState</a>(<a href="../../../ [...]
 <div class="block">Get the current compaction state of a table. It could be in a major compaction, a minor
  compaction, both, or none.</div>
 <dl>
@@ -3433,7 +3433,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionState</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1160">getCompactionState</a>(<a href="../../../../../org/apa [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1161">getCompactionState</a>(<a href="../../../../../org/apa [...]
                                                       <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</pre>
 <div class="block">Get the current compaction state of a table. It could be in a major compaction, a minor
  compaction, both, or none.</div>
@@ -3452,7 +3452,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionStateForRegion</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1169">getCompactionStateForRegion</a>(byte[]&nbsp;regionName)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1170">getCompactionStateForRegion</a>(byte[]&nbsp;regionName)</pre>
 <div class="block">Get the current compaction state of region. It could be in a major compaction, a minor
  compaction, both, or none.</div>
 <dl>
@@ -3469,7 +3469,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTimestamp</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt;&nbs [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt;&nbs [...]
 <div class="block">Get the timestamp of the last major compaction for the passed table.
  <p>
  The timestamp of the oldest HFile resulting from a major compaction of that table, or not
@@ -3488,7 +3488,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTimestampForRegion</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt;&nbs [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt;&nbs [...]
 <div class="block">Get the timestamp of the last major compaction for the passed region.
  <p>
  The timestamp of the oldest HFile resulting from a major compaction of that region, or not
@@ -3507,7 +3507,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getSecurityCapabilities</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/security/SecurityCapability.html" title="enum in org.apache.hadoop.hbase.client.security">SecurityCapa [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/security/SecurityCapability.html" title="enum in org.apache.hadoop.hbase.client.security">SecurityCapa [...]
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the list of supported security capabilities. The return value will be wrapped by a
@@ -3521,7 +3521,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>balancerSwitch</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1202">balancerSwitch</a>(boolean&nbsp;on)</pre>
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1203">balancerSwitch</a>(boolean&nbsp;on)</pre>
 <div class="block">Turn the load balancer on or off.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3537,7 +3537,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>balancerSwitch</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1217">balancerSwitch</a>(boolean&nbsp;on,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1218">balancerSwitch</a>(boolean&nbsp;on,
                                           boolean&nbsp;drainRITs)</pre>
 <div class="block">Turn the load balancer on or off.
  <p/>
@@ -3560,7 +3560,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>balance</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1225">balance</a>()</pre>
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1226">balance</a>()</pre>
 <div class="block">Invoke the balancer. Will run the balancer and if regions to move, it will go ahead and do the
  reassignments. Can NOT run for various reasons. Check logs.</div>
 <dl>
@@ -3576,7 +3576,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>balance</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1237">balance</a>(boolean&nbsp;forcible)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1238">balance</a>(boolean&nbsp;forcible)</pre>
 <div class="block">Invoke the balancer. Will run the balancer and if regions to move, it will go ahead and do the
  reassignments. If there is region in transition, force parameter of true would still run
  balancer. Can *not* run for other reasons. Check logs.</div>
@@ -3595,7 +3595,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>isBalancerEnabled</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1244">isBalancerEnabled</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1245">isBalancerEnabled</a>()</pre>
 <div class="block">Query the current state of the balancer.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3610,7 +3610,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>normalizerSwitch</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1251">normalizerSwitch</a>(boolean&nbsp;on)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1252">normalizerSwitch</a>(boolean&nbsp;on)</pre>
 <div class="block">Set region normalizer on/off.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3626,7 +3626,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>isNormalizerEnabled</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1258">isNormalizerEnabled</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1259">isNormalizerEnabled</a>()</pre>
 <div class="block">Query the current state of the region normalizer</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3641,7 +3641,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>normalize</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1265">normalize</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1266">normalize</a>()</pre>
 <div class="block">Invoke region normalizer. Can NOT run for various reasons. Check logs.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3656,7 +3656,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanerChoreSwitch</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1272">cleanerChoreSwitch</a>(boolean&nbsp;on)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1273">cleanerChoreSwitch</a>(boolean&nbsp;on)</pre>
 <div class="block">Turn the cleaner chore on/off.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3672,7 +3672,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>isCleanerChoreEnabled</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1279">isCleanerChoreEnabled</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1280">isCleanerChoreEnabled</a>()</pre>
 <div class="block">Query the current state of the cleaner chore.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3687,7 +3687,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>runCleanerChore</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1286">runCleanerChore</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1287">runCleanerChore</a>()</pre>
 <div class="block">Ask for cleaner chore to run.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3702,7 +3702,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>catalogJanitorSwitch</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1293">catalogJanitorSwitch</a>(boolean&nbsp;on)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1294">catalogJanitorSwitch</a>(boolean&nbsp;on)</pre>
 <div class="block">Turn the catalog janitor on/off.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3718,7 +3718,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogJanitorEnabled</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1300">isCatalogJanitorEnabled</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1301">isCatalogJanitorEnabled</a>()</pre>
 <div class="block">Query on the catalog janitor state.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3733,7 +3733,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>runCatalogJanitor</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1307">runCatalogJanitor</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1308">runCatalogJanitor</a>()</pre>
 <div class="block">Ask for a scan of the catalog table.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3748,7 +3748,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>coprocessorService</h4>
-<pre>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1328">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Funct [...]
+<pre>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1329">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Funct [...]
                                               <a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable)</pre>
 <div class="block">Execute the given coprocessor call on the master.
  <p>
@@ -3781,7 +3781,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>coprocessorService</h4>
-<pre>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1351">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Funct [...]
+<pre>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1352">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Funct [...]
                                               <a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                                               <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block">Execute the given coprocessor call on the given region server.
@@ -3816,7 +3816,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listDeadServers</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;<a href=". [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;<a href=". [...]
 <div class="block">List all the dead region servers.</div>
 </li>
 </ul>
@@ -3826,7 +3826,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>clearDeadServers</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;<a href="../../../../.. [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;&nbsp;<a href="../../../../.. [...]
 <div class="block">Clear dead region servers from master.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3842,7 +3842,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>clearBlockCache</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/CacheEvictionStats.html" title="class in org.apache.hadoop.hbase">CacheEvictionStats</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1377">clearBlockCache</a>(<a href="../../../../../org/apache/hadoop [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/CacheEvictionStats.html" title="class in org.apache.hadoop.hbase">CacheEvictionStats</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1378">clearBlockCache</a>(<a href="../../../../../org/apache/hadoop [...]
 <div class="block">Clear all the blocks corresponding to this table from BlockCache. For expert-admins. Calling
  this API will drop all the cached blocks specific to a table from BlockCache. This can
  significantly impact the query performance as the subsequent queries will have to retrieve the
@@ -3861,7 +3861,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>cloneTableSchema</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1386">cloneTableSchema</a>(<a href="../../../../../org/apache/hado [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1387">cloneTableSchema</a>(<a href="../../../../../org/apache/hado [...]
                                          <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;newTableName,
                                          boolean&nbsp;preserveSplits)</pre>
 <div class="block">Create a new table by cloning the existent table schema.</div>
@@ -3879,7 +3879,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>compactionSwitch</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javas [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javas [...]
                                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;serverNamesList)</pre>
 <div class="block">Turn the compaction on or off. Disabling compactions will also interrupt any currently ongoing
  compactions. This state is ephemeral. The setting will be lost on restart. Compaction
@@ -3900,7 +3900,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>switchRpcThrottle</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1407">switchRpcThrottle</a>(boolean&nbsp;enable)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1408">switchRpcThrottle</a>(boolean&nbsp;enable)</pre>
 <div class="block">Switch the rpc throttle enabled state.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3916,7 +3916,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>isRpcThrottleEnabled</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1413">isRpcThrottleEnabled</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1414">isRpcThrottleEnabled</a>()</pre>
 <div class="block">Get if the rpc throttle is enabled.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3930,7 +3930,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>exceedThrottleQuotaSwitch</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1421">exceedThrottleQuotaSwitch</a>(boolean&nbsp;enable)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1422">exceedThrottleQuotaSwitch</a>(boolean&nbsp;enable)</pre>
 <div class="block">Switch the exceed throttle quota. If enabled, user/table/namespace throttle quota
  can be exceeded if region server has availble quota.</div>
 <dl>
@@ -3947,7 +3947,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getSpaceQuotaTableSizes</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/ [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/ [...]
 <div class="block">Fetches the table sizes on the filesystem as tracked by the HBase Master.</div>
 </li>
 </ul>
@@ -3957,7 +3957,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerSpaceQuotaSnapshots</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,? extends <a href="../../../.. [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,? extends <a href="../../../.. [...]
 <div class="block">Fetches the observed <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotView.html" title="interface in org.apache.hadoop.hbase.quotas"><code>SpaceQuotaSnapshotView</code></a>s observed by a RegionServer.</div>
 </li>
 </ul>
@@ -3967,7 +3967,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentSpaceQuotaSnapshot</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotView.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotView</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1439">getCurrentSpaceQuotaSnaps [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotView.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotView</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1440">getCurrentSpaceQuotaSnaps [...]
 <div class="block">Returns the Master's view of a quota on the given <code>namespace</code> or null if the Master has
  no quota information on that namespace.</div>
 </li>
@@ -3978,7 +3978,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentSpaceQuotaSnapshot</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotView.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotView</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1445">getCurrentSpaceQuotaSnaps [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotView.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotView</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1446">getCurrentSpaceQuotaSnaps [...]
 <div class="block">Returns the Master's view of a quota on the given <code>tableName</code> or null if the Master has
  no quota information on that table.</div>
 </li>
@@ -3989,7 +3989,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>grant</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1455">grant</a>(org.apache.hadoop.hbase.security.access.UserPermis [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1456">grant</a>(org.apache.hadoop.hbase.security.access.UserPermis [...]
                               boolean&nbsp;mergeExistingPermissions)</pre>
 <div class="block">Grants user specific permissions</div>
 <dl>
@@ -4007,7 +4007,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>revoke</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1461">revoke</a>(org.apache.hadoop.hbase.security.access.UserPermi [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1462">revoke</a>(org.apache.hadoop.hbase.security.access.UserPermi [...]
 <div class="block">Revokes user specific permissions</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -4021,7 +4021,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getUserPermissions</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.security.access.UserPermission&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1470 [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.security.access.UserPermission&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1471 [...]
 <div class="block">Get the global/namespace/table permissions for user</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -4038,7 +4038,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>hasUserPermissions</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&gt;&nbsp; [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&gt;&nbsp; [...]
                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.security.access.Permission&gt;&nbsp;permissions)</pre>
 <div class="block">Check if the user has specific permissions</div>
 <dl>
@@ -4056,7 +4056,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>hasUserPermissions</h4>
-<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>& [...]
+<pre>default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>& [...]
 <div class="block">Check if call user has specific permissions</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -4072,7 +4072,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshotCleanupSwitch</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1502">snapshotCleanupSwitch</a>(boolean&nbsp;on,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1503">snapshotCleanupSwitch</a>(boolean&nbsp;on,
                                                  boolean&nbsp;sync)</pre>
 <div class="block">Turn on or off the auto snapshot cleanup based on TTL.
  <p/>
@@ -4095,7 +4095,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>isSnapshotCleanupEnabled</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1510">isSnapshotCleanupEnabled</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1511">isSnapshotCleanupEnabled</a>()</pre>
 <div class="block">Query the current state of the auto snapshot cleanup based on TTL.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -4110,7 +4110,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getSlowLogResponses</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.client.SlowLogRecord&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1520">getSlowL [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.client.SlowLogRecord&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1521">getSlowL [...]
                                                                                           org.apache.hadoop.hbase.client.SlowLogQueryFilter&nbsp;slowLogQueryFilter)</pre>
 <div class="block">Retrieves online slow RPC logs from the provided list of
  RegionServers</div>
@@ -4129,7 +4129,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>clearSlowLogResponses</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&gt;&nbsp; [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&gt;&nbsp; [...]
 <div class="block">Clears online slow RPC logs from the provided list of
  RegionServers</div>
 <dl>
@@ -4147,7 +4147,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>addRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1538">addRSGroup</a>(<a href="https://docs.oracle.com/javase/8/doc [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1539">addRSGroup</a>(<a href="https://docs.oracle.com/javase/8/doc [...]
 <div class="block">Creates a new RegionServer group with the given name</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -4163,7 +4163,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1546">getRSGroup</a>(<a href="https://docs.oracle.com/javase/8/do [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1547">getRSGroup</a>(<a href="https://docs.oracle.com/javase/8/do [...]
 <div class="block">Get group info for the given group name</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -4181,7 +4181,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1553">getRSGroup</a>(<a href="../../../../../org/apache/hadoop/hb [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1554">getRSGroup</a>(<a href="../../../../../org/apache/hadoop/hb [...]
 <div class="block">Get group info for the given hostPort</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -4197,7 +4197,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1560">getRSGroup</a>(<a href="../../../../../org/apache/hadoop/hb [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1561">getRSGroup</a>(<a href="../../../../../org/apache/hadoop/hb [...]
 <div class="block">Get group info for the given table</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -4213,7 +4213,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listRSGroups</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&gt;&nbsp;<a hr [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&gt;&nbsp;<a hr [...]
 <div class="block">Lists current set of RegionServer groups</div>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -4227,7 +4227,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>listTablesInRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&gt;&nbsp;<a href="../../../../../s [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&gt;&nbsp;<a href="../../../../../s [...]
 <div class="block">Get all tables in this RegionServer group.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -4245,7 +4245,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguredNamespacesAndTablesInRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/ja [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/ja [...]
 <div class="block">Get the namespaces and tables which have this RegionServer group in descriptor.
  <p/>
  The difference between this method and <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listTablesInRSGroup-java.lang.String-"><code>listTablesInRSGroup(String)</code></a> is that, this
@@ -4270,7 +4270,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>removeRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1597">removeRSGroup</a>(<a href="https://docs.oracle.com/javase/8/ [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1598">removeRSGroup</a>(<a href="https://docs.oracle.com/javase/8/ [...]
 <div class="block">Remove RegionServer group associated with the given name</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -4286,7 +4286,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>removeServersFromRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1608">removeServersFromRSGroup</a>(<a href="https://docs.oracle.co [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1609">removeServersFromRSGroup</a>(<a href="https://docs.oracle.co [...]
 <div class="block">Remove decommissioned servers from group
   1. Sometimes we may find the server aborted due to some hardware failure and we must offline
      the server for repairing. Or we need to move some servers to join other clusters.
@@ -4306,7 +4306,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>moveServersToRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1616">moveServersToRSGroup</a>(<a href="https://docs.oracle.com/ja [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1617">moveServersToRSGroup</a>(<a href="https://docs.oracle.com/ja [...]
                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</pre>
 <div class="block">Move given set of servers to the specified target RegionServer group</div>
 <dl>
@@ -4324,7 +4324,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockList">
 <li class="blockList">
 <h4>setRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1624">setRSGroup</a>(<a href="https://docs.oracle.com/javase/8/doc [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1625">setRSGroup</a>(<a href="https://docs.oracle.com/javase/8/doc [...]
                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</pre>
 <div class="block">Set the RegionServer group for tables</div>
 <dl>
@@ -4342,7 +4342,7 @@ default&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concur
 <ul class="blockListLast">
 <li class="blockList">
 <h4>balanceRSGroup</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1632">balanceRSGroup</a>(<a href="https://docs.oracle.com/ja [...]
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.1633">balanceRSGroup</a>(<a href="https://docs.oracle.com/ja [...]
 <div class="block">Balance regions in the given RegionServer group</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
diff --git a/apidocs/org/apache/hadoop/hbase/client/AsyncTable.html b/apidocs/org/apache/hadoop/hbase/client/AsyncTable.html
index 4a34eaf..c2cc485 100644
--- a/apidocs/org/apache/hadoop/hbase/client/AsyncTable.html
+++ b/apidocs/org/apache/hadoop/hbase/client/AsyncTable.html
@@ -187,7 +187,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>&lt;S,R&gt;&nbsp;org.apache.hadoop.hbase.client.AsyncTable.CoprocessorServiceBuilder&lt;S,R&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.client.AsyncTable.CoprocessorCallback-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;com.google.pr [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.client.AsyncTable.CoprocessorCallback-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;org.apache.hb [...]
                   <a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                   <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" title="interface in org.apache.hadoop.hbase.client">AsyncTable.CoprocessorCallback</a>&lt;R&gt;&nbsp;callback)</code>
 <div class="block">Execute a coprocessor call on the regions which are covered by a range.</div>
@@ -195,7 +195,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 </tr>
 <tr id="i6" class="altColor">
 <td class="colFirst"><code>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-byte:A-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;com.google.protobuf.RpcChannel,S&gt;&nbsp;stubMaker,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-byte:A-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel,S&gt;&nbs [...]
                   <a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                   byte[]&nbsp;row)</code>
 <div class="block">Execute the given coprocessor call on the region which contains the given <code>row</code>.</div>
@@ -1072,7 +1072,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockList">
 <li class="blockList">
 <h4>coprocessorService</h4>
-<pre>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncTable.html#line.546">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Functi [...]
+<pre>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncTable.html#line.546">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Functi [...]
                                               <a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                                               byte[]&nbsp;row)</pre>
 <div class="block">Execute the given coprocessor call on the region which contains the given <code>row</code>.
@@ -1107,7 +1107,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <ul class="blockListLast">
 <li class="blockList">
 <h4>coprocessorService</h4>
-<pre>&lt;S,R&gt;&nbsp;org.apache.hadoop.hbase.client.AsyncTable.CoprocessorServiceBuilder&lt;S,R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncTable.html#line.685">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;com.google.protobuf.RpcChannel,S&gt;&nbsp;stubMaker,
+<pre>&lt;S,R&gt;&nbsp;org.apache.hadoop.hbase.client.AsyncTable.CoprocessorServiceBuilder&lt;S,R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncTable.html#line.685">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel,S&gt;&nbsp;stubMaker,
                                                                                                   <a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                                                                                                   <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" title="interface in org.apache.hadoop.hbase.client">AsyncTable.CoprocessorCallback</a>&lt;R&gt;&nbsp;callback)</pre>
 <div class="block">Execute a coprocessor call on the regions which are covered by a range.
diff --git a/apidocs/org/apache/hadoop/hbase/client/Mutation.html b/apidocs/org/apache/hadoop/hbase/client/Mutation.html
index e9611fb..63aeddc 100644
--- a/apidocs/org/apache/hadoop/hbase/client/Mutation.html
+++ b/apidocs/org/apache/hadoop/hbase/client/Mutation.html
@@ -128,7 +128,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.69">Mutation</a>
+public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.70">Mutation</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/OperationWithAttributes.html" title="class in org.apache.hadoop.hbase.client">OperationWithAttributes</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>, <a href="../../../../../org/apache/hadoop/hbase/CellScannable.html" title="interface in org.apache.hadoop.hbase">CellScannable</a>, org.apache.hadoop.hbase.io.HeapSize</pre>
 </li>
@@ -477,7 +477,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>MUTATION_OVERHEAD</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.71">MUTATION_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.72">MUTATION_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="row">
@@ -486,7 +486,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>row</h4>
-<pre>protected&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.101">row</a></pre>
+<pre>protected&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.102">row</a></pre>
 </li>
 </ul>
 <a name="ts">
@@ -495,7 +495,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>ts</h4>
-<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.102">ts</a></pre>
+<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.103">ts</a></pre>
 </li>
 </ul>
 <a name="durability">
@@ -504,7 +504,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>durability</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.103">durability</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.104">durability</a></pre>
 </li>
 </ul>
 <a name="familyMap">
@@ -513,7 +513,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>familyMap</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt; <a href="../../../../../src-html/org/apache/ha [...]
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt; <a href="../../../../../src-html/org/apache/ha [...]
 </li>
 </ul>
 </li>
@@ -530,7 +530,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>Mutation</h4>
-<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.113">Mutation</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.114">Mutation</a>()</pre>
 <div class="block">empty construction.
  We need this empty construction to keep binary compatibility.</div>
 </li>
@@ -541,7 +541,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>Mutation</h4>
-<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.117">Mutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;clone)</pre>
+<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.118">Mutation</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;clone)</pre>
 </li>
 </ul>
 <a name="Mutation-byte:A-long-java.util.NavigableMap-">
@@ -550,7 +550,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Mutation</h4>
-<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.133">Mutation</a>(byte[]&nbsp;row,
+<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.134">Mutation</a>(byte[]&nbsp;row,
                    long&nbsp;ts,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap)</pre>
 <div class="block">Construct the mutation with user defined data.</div>
@@ -576,7 +576,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>cellScanner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.143">cellScanner</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.144">cellScanner</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/CellScannable.html#cellScanner--">cellScanner</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/CellScannable.html" title="interface in org.apache.hadoop.hbase">CellScannable</a></code></dd>
@@ -591,7 +591,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getFingerprint</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache [...]
 <div class="block">Compile the column family (i.e. schema) information
  into a Map. Useful for parsing and aggregation by debugging,
  logging, and administration tools.</div>
@@ -609,7 +609,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>toMap</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache [...]
 <div class="block">Compile the details beyond the scope of getFingerprint (row, columns,
  timestamps, etc.) into a Map along with the fingerprinted information.
  Useful for debugging, logging, and administration tools.</div>
@@ -629,7 +629,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>setDurability</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.289">setDurability</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;d)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.290">setDurability</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;d)</pre>
 <div class="block">Set the durability for this mutation</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -643,7 +643,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getDurability</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.295">getDurability</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.296">getDurability</a>()</pre>
 <div class="block">Get the current durability</div>
 </li>
 </ul>
@@ -653,7 +653,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getFamilyCellMap</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/ [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/ [...]
 <div class="block">Method for retrieving the put's familyMap</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -667,7 +667,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>isEmpty</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.311">isEmpty</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.312">isEmpty</a>()</pre>
 <div class="block">Method to check if the familyMap is empty</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -681,7 +681,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getRow</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.320">getRow</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.321">getRow</a>()</pre>
 <div class="block">Method for retrieving the delete's row</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -698,7 +698,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" titl
 <li class="blockList">
 <h4>compareTo</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.330">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;d)</pre>
+public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.331">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;d)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">As of release 2.0.0, this will be removed in HBase 3.0.0.
              Use <a href="../../../../../org/apache/hadoop/hbase/client/Row.html#COMPARATOR"><code>Row.COMPARATOR</code></a> instead</span></div>
 <dl>
@@ -715,7 +715,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimestamp</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.339">getTimestamp</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.340">getTimestamp</a>()</pre>
 <div class="block">Method for retrieving the timestamp.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -729,7 +729,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterIds</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.347">setClusterIds</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" tit [...]
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.348">setClusterIds</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" tit [...]
 <div class="block">Marks that the clusters with the given clusterIds have consumed the mutation</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -743,7 +743,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterIds</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.361">getClusterIds</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.362">getClusterIds</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the set of clusterIds that have consumed the mutation</dd>
@@ -756,7 +756,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>setCellVisibility</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.378">setCellVisibility</a>(org.apache.hadoop.hbase.security.visibility.CellVisibility&nbsp;expression)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.379">setCellVisibility</a>(org.apache.hadoop.hbase.security.visibility.CellVisibility&nbsp;expression)</pre>
 <div class="block">Sets the visibility expression associated with cells in this Mutation.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -770,7 +770,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>getCellVisibility</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.security.visibility.CellVisibility&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.388">getCellVisibility</a>()
+<pre>public&nbsp;org.apache.hadoop.hbase.security.visibility.CellVisibility&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.389">getCellVisibility</a>()
                                                                              throws org.apache.hadoop.hbase.exceptions.DeserializationException</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -786,7 +786,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>size</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.441">size</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.442">size</a>()</pre>
 <div class="block">Number of KeyValues carried by this Mutation.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -800,7 +800,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>numFamilies</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.452">numFamilies</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.453">numFamilies</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of different families</dd>
@@ -813,7 +813,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>heapSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.460">heapSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.461">heapSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>heapSize</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.io.HeapSize</code></dd>
@@ -828,7 +828,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>getACL</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.493">getACL</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.494">getACL</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The serialized ACL for this operation, or null if none</dd>
@@ -841,7 +841,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>setACL</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.501">setACL</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.502">setACL</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                        org.apache.hadoop.hbase.security.access.Permission&nbsp;perms)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -856,7 +856,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>setACL</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.510">setACL</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="cla [...]
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.511">setACL</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="cla [...]
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>perms</code> - A map of permissions for a user or users</dd>
@@ -869,7 +869,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>getTTL</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.525">getTTL</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.526">getTTL</a>()</pre>
 <div class="block">Return the TTL requested for the result of the mutation, in milliseconds.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -884,7 +884,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>setTTL</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.538">setTTL</a>(long&nbsp;ttl)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.539">setTTL</a>(long&nbsp;ttl)</pre>
 <div class="block">Set the TTL desired for the result of the mutation, in milliseconds.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -900,7 +900,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>extraHeapSize</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.564">extraHeapSize</a>()</pre>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.565">extraHeapSize</a>()</pre>
 <div class="block">Subclasses should override this method to add the heap size of their own fields.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -914,7 +914,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>setTimestamp</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.571">setTimestamp</a>(long&nbsp;timestamp)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.572">setTimestamp</a>(long&nbsp;timestamp)</pre>
 <div class="block">Set the timestamp of the delete.</div>
 </li>
 </ul>
@@ -924,7 +924,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>has</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.589">has</a>(byte[]&nbsp;family,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.590">has</a>(byte[]&nbsp;family,
                    byte[]&nbsp;qualifier)</pre>
 <div class="block">A convenience method to determine if this object's familyMap contains
  a value assigned to the given family &amp; qualifier.
@@ -945,7 +945,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>has</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.604">has</a>(byte[]&nbsp;family,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.605">has</a>(byte[]&nbsp;family,
                    byte[]&nbsp;qualifier,
                    long&nbsp;ts)</pre>
 <div class="block">A convenience method to determine if this object's familyMap contains
@@ -968,7 +968,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>has</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.619">has</a>(byte[]&nbsp;family,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.620">has</a>(byte[]&nbsp;family,
                    byte[]&nbsp;qualifier,
                    byte[]&nbsp;value)</pre>
 <div class="block">A convenience method to determine if this object's familyMap contains
@@ -991,7 +991,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>has</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.635">has</a>(byte[]&nbsp;family,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.636">has</a>(byte[]&nbsp;family,
                    byte[]&nbsp;qualifier,
                    long&nbsp;ts,
                    byte[]&nbsp;value)</pre>
@@ -1016,7 +1016,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.647">get</a>(byte[]&nbsp;family,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.648">get</a>(byte[]&nbsp;family,
                       byte[]&nbsp;qualifier)</pre>
 <div class="block">Returns a list of all KeyValue objects with matching column family and qualifier.</div>
 <dl>
@@ -1035,7 +1035,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>has</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.671">has</a>(byte[]&nbsp;family,
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.672">has</a>(byte[]&nbsp;family,
                       byte[]&nbsp;qualifier,
                       long&nbsp;ts,
                       byte[]&nbsp;value,
@@ -1049,7 +1049,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>getCellBuilder</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.795">getCellBuilder</a>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;cellBuilderType)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.796">getCellBuilder</a>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;cellBuilderType)</pre>
 <div class="block">get a CellBuilder instance that already has relevant Type and Row set.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1065,7 +1065,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockList">
 <li class="blockList">
 <h4>getCellBuilder</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.802">getCellBuilder</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.803">getCellBuilder</a>()</pre>
 <div class="block">get a CellBuilder instance that already has relevant Type and Row set.
  the default CellBuilderType is CellBuilderType.SHALLOW_COPY</div>
 <dl>
@@ -1080,7 +1080,7 @@ public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/cl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getCellBuilder</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.812">getCellBuilder</a>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;cellBuilderType,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellBuilder.html" title="interface in org.apache.hadoop.hbase">CellBuilder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Mutation.html#line.813">getCellBuilder</a>(<a href="../../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase">CellBuilderType</a>&nbsp;cellBuilderType,
                                      org.apache.hadoop.hbase.Cell.Type&nbsp;cellType)</pre>
 <div class="block">get a CellBuilder instance that already has relevant Type and Row set.</div>
 <dl>
diff --git a/apidocs/org/apache/hadoop/hbase/client/ServiceCaller.html b/apidocs/org/apache/hadoop/hbase/client/ServiceCaller.html
index 701661c..3d7414c 100644
--- a/apidocs/org/apache/hadoop/hbase/client/ServiceCaller.html
+++ b/apidocs/org/apache/hadoop/hbase/client/ServiceCaller.html
@@ -149,9 +149,9 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html#call-S-com.google.protobuf.RpcController-com.google.protobuf.RpcCallback-">call</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="type parameter in ServiceCaller">S</a>&nbsp;stub,
-    com.google.protobuf.RpcController&nbsp;controller,
-    com.google.protobuf.RpcCallback&lt;<a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="type parameter in ServiceCaller">R</a>&gt;&nbsp;rpcCallback)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html#call-S-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback-">call</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="type parameter in ServiceCaller">S</a>&nbsp;stub,
+    org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+    org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback&lt;<a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="type parameter in ServiceCaller">R</a>&gt;&nbsp;rpcCallback)</code>
 <div class="block">Represent the actual protobuf rpc call.</div>
 </td>
 </tr>
@@ -170,17 +170,17 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="call-java.lang.Object-com.google.protobuf.RpcController-com.google.protobuf.RpcCallback-">
+<a name="call-java.lang.Object-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback-">
 <!--   -->
-</a><a name="call-S-com.google.protobuf.RpcController-com.google.protobuf.RpcCallback-">
+</a><a name="call-S-org.apache.hbase.thirdparty.com.google.protobuf.RpcController-org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
 <pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ServiceCaller.html#line.60">call</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="type parameter in ServiceCaller">S</a>&nbsp;stub,
-          com.google.protobuf.RpcController&nbsp;controller,
-          com.google.protobuf.RpcCallback&lt;<a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="type parameter in ServiceCaller">R</a>&gt;&nbsp;rpcCallback)</pre>
+          org.apache.hbase.thirdparty.com.google.protobuf.RpcController&nbsp;controller,
+          org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback&lt;<a href="../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="type parameter in ServiceCaller">R</a>&gt;&nbsp;rpcCallback)</pre>
 <div class="block">Represent the actual protobuf rpc call.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
diff --git a/apidocs/org/apache/hadoop/hbase/client/Table.html b/apidocs/org/apache/hadoop/hbase/client/Table.html
index e5f78d8..5c28dd1 100644
--- a/apidocs/org/apache/hadoop/hbase/client/Table.html
+++ b/apidocs/org/apache/hadoop/hbase/client/Table.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.57">Table</a>
+public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.58">Table</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
 <div class="block">Used to communicate with a single HBase table.
  Obtain an instance from a <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client"><code>Connection</code></a> and call <a href="../../../../../org/apache/hadoop/hbase/client/Table.html#close--"><code>close()</code></a> afterwards.
@@ -171,9 +171,9 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 </td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code>default &lt;R extends com.google.protobuf.Message&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-">batchCoprocessorService</a></span>(com.google.protobuf.Descriptors.MethodDescriptor&nbsp;methodDescriptor,
-                       com.google.protobuf.Message&nbsp;request,
+<td class="colFirst"><code>default &lt;R extends org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-">batchCoprocessorService</a></span>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;methodDescriptor,
+                       org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;request,
                        byte[]&nbsp;startKey,
                        byte[]&nbsp;endKey,
                        R&nbsp;responsePrototype)</code>
@@ -187,9 +187,9 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 </td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code>default &lt;R extends com.google.protobuf.Message&gt;<br>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCoprocessorService</a></span>(com.google.protobuf.Descriptors.MethodDescriptor&nbsp;methodDescriptor,
-                       com.google.protobuf.Message&nbsp;request,
+<td class="colFirst"><code>default &lt;R extends org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;<br>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCoprocessorService</a></span>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;methodDescriptor,
+                       org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;request,
                        byte[]&nbsp;startKey,
                        byte[]&nbsp;endKey,
                        R&nbsp;responsePrototype,
@@ -233,7 +233,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 </td>
 </tr>
 <tr id="i9" class="rowColor">
-<td class="colFirst"><code>default &lt;T extends com.google.protobuf.Service,R&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;</code></td>
+<td class="colFirst"><code>default &lt;T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Table.html#coprocessorService-java.lang.Class-byte:A-byte:A-org.apache.hadoop.hbase.client.coprocessor.Batch.Call-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;service,
                   byte[]&nbsp;startKey,
                   byte[]&nbsp;endKey,
@@ -248,7 +248,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 </td>
 </tr>
 <tr id="i10" class="altColor">
-<td class="colFirst"><code>default &lt;T extends com.google.protobuf.Service,R&gt;<br>void</code></td>
+<td class="colFirst"><code>default &lt;T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R&gt;<br>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Table.html#coprocessorService-java.lang.Class-byte:A-byte:A-org.apache.hadoop.hbase.client.coprocessor.Batch.Call-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;service,
                   byte[]&nbsp;startKey,
                   byte[]&nbsp;endKey,
@@ -431,7 +431,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getName</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.61">getName</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.62">getName</a>()</pre>
 <div class="block">Gets the fully qualified table name instance of this table.</div>
 </li>
 </ul>
@@ -441,7 +441,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.69">getConfiguration</a>()</pre>
+<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.70">getConfiguration</a>()</pre>
 <div class="block">Returns the <code>Configuration</code> object used by this instance.
  <p>
  The reference returned is not a copy, so any change made to it will
@@ -454,7 +454,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getDescriptor</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.75">getDescriptor</a>()
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.76">getDescriptor</a>()
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Gets the <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><code>table descriptor</code></a> for this table.</div>
 <dl>
@@ -469,7 +469,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionLocator</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.80">getRegionLocator</a>()
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.81">getRegionLocator</a>()
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Gets the <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client"><code>RegionLocator</code></a> for this table.</div>
 <dl>
@@ -484,7 +484,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>exists</h4>
-<pre>default&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.96">exists</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)
+<pre>default&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.97">exists</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Test for the existence of columns in the table, as specified by the Get.
  <p>
@@ -510,7 +510,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>exists</h4>
-<pre>default&nbsp;boolean[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.115">exists</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&gt;&nbsp;gets)
+<pre>default&nbsp;boolean[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.116">exists</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&gt;&nbsp;gets)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Test for the existence of columns in the table, as specified by the Gets.
  <p>
@@ -537,7 +537,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>batch</h4>
-<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.133">batch</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;actions,
+<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.134">batch</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;actions,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;results)
             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -567,7 +567,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.htm
 <li class="blockList">
 <h4>batchCallback</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.148">batchCallback</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;actions,
+default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.149">batchCallback</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;actions,
                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;results,
                                            org.apache.hadoop.hbase.client.coprocessor.Batch.Callback&lt;R&gt;&nbsp;callback)
                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
@@ -593,7 +593,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.163">get</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)
+<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.164">get</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get)
             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Extracts certain cells from a given row.</div>
 <dl>
@@ -617,7 +617,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.184">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.c [...]
+<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.185">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.c [...]
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Extracts specified cells from the given rows, as a batch.</div>
 <dl>
@@ -648,7 +648,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.199">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)
+<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.200">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Returns a scanner on the current table as specified by the <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client"><code>Scan</code></a>
  object.
@@ -672,7 +672,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.211">getScanner</a>(byte[]&nbsp;family)
+<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.212">getScanner</a>(byte[]&nbsp;family)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Gets a scanner on the current table for the given family.</div>
 <dl>
@@ -693,7 +693,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.224">getScanner</a>(byte[]&nbsp;family,
+<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.225">getScanner</a>(byte[]&nbsp;family,
                                  byte[]&nbsp;qualifier)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Gets a scanner on the current table for the given family and qualifier.</div>
@@ -716,7 +716,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.235">put</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put)
+<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.236">put</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put)
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Puts some data in the table.</div>
 <dl>
@@ -735,7 +735,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.255">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&gt;&nbsp;puts)
+<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.256">put</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&gt;&nbsp;puts)
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Batch puts the specified data into the table.
  <p>
@@ -763,7 +763,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.266">delete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)
+<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.267">delete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Deletes the specified cells/row.</div>
 <dl>
@@ -782,7 +782,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.293">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&gt;&nbsp;deletes)
+<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.294">delete</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&gt;&nbsp;deletes)
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Batch Deletes the specified cells/rows from the table.
  <p>
@@ -818,7 +818,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndMutate</h4>
-<pre>default&nbsp;org.apache.hadoop.hbase.client.Table.CheckAndMutateBuilder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.310">checkAndMutate</a>(byte[]&nbsp;row,
+<pre>default&nbsp;org.apache.hadoop.hbase.client.Table.CheckAndMutateBuilder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.311">checkAndMutate</a>(byte[]&nbsp;row,
                                                                                   byte[]&nbsp;family)</pre>
 <div class="block">Atomically checks if a row/family/qualifier value matches the expected value. If it does, it
  adds the Put/Delete/RowMutations.
@@ -839,7 +839,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndMutate</h4>
-<pre>default&nbsp;org.apache.hadoop.hbase.client.Table.CheckAndMutateWithFilterBuilder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.380">checkAndMutate</a>(byte[]&nbsp;row,
+<pre>default&nbsp;org.apache.hadoop.hbase.client.Table.CheckAndMutateWithFilterBuilder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.381">checkAndMutate</a>(byte[]&nbsp;row,
                                                                                             <a href="../../../../../org/apache/hadoop/hbase/filter/Filter.html" title="class in org.apache.hadoop.hbase.filter">Filter</a>&nbsp;filter)</pre>
 <div class="block">Atomically checks if a row matches the specified filter. If it does, it adds the
  Put/Delete/RowMutations.
@@ -860,7 +860,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>mutateRow</h4>
-<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.420">mutateRow</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a>&nbsp;rm)
+<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.421">mutateRow</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a>&nbsp;rm)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Performs multiple mutations atomically on a single row. Currently
  <a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client"><code>Put</code></a> and <a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client"><code>Delete</code></a> are supported.</div>
@@ -878,7 +878,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.435">append</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)
+<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.436">append</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)
                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Appends values to one or more columns within a single row.
  <p>
@@ -901,7 +901,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>increment</h4>
-<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.451">increment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)
+<pre>default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.452">increment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Increments one or more columns within a single row.
  <p>
@@ -925,7 +925,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementColumnValue</h4>
-<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.467">incrementColumnValue</a>(byte[]&nbsp;row,
+<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.468">incrementColumnValue</a>(byte[]&nbsp;row,
                                   byte[]&nbsp;family,
                                   byte[]&nbsp;qualifier,
                                   long&nbsp;amount)
@@ -953,7 +953,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementColumnValue</h4>
-<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.491">incrementColumnValue</a>(byte[]&nbsp;row,
+<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.492">incrementColumnValue</a>(byte[]&nbsp;row,
                                   byte[]&nbsp;family,
                                   byte[]&nbsp;qualifier,
                                   long&nbsp;amount,
@@ -987,7 +987,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.506">close</a>()
+<pre>default&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.507">close</a>()
             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Releases any resources held or pending changes in internal buffers.</div>
 <dl>
@@ -1007,7 +1007,7 @@ default&nbsp;&lt;R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apach
 <li class="blockList">
 <h4>coprocessorService</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="interface in org.apache.hadoop.hbase.ipc">CoprocessorRpcChannel</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.540">coprocessorService</a>(byte[]&nbsp;row)</pre>
+default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="interface in org.apache.hadoop.hbase.ipc">CoprocessorRpcChannel</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.541">coprocessorService</a>(byte[]&nbsp;row)</pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 3.0.0, will removed in 4.0.0. This is too low level, please stop using it any
              more. Use the coprocessorService methods in <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncTable</code></a> instead.</span></div>
 <div class="block">Creates and returns a <code>RpcChannel</code> instance connected to the table
@@ -1049,12 +1049,12 @@ default&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/CoprocessorRpcC
 <li class="blockList">
 <h4>coprocessorService</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-default&nbsp;&lt;T extends com.google.protobuf.Service,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.570">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;service,
-                                                                                               byte[]&nbsp;startKey,
-                                                                                               byte[]&nbsp;endKey,
-                                                                                               org.apache.hadoop.hbase.client.coprocessor.Batch.Call&lt;T,R&gt;&nbsp;callable)
-                                                                                        throws com.google.protobuf.ServiceException,
-                                                                                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
+default&nbsp;&lt;T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.571">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Cla [...]
+                                                                                                                           byte[]&nbsp;startKey,
+                                                                                                                           byte[]&nbsp;endKey,
+                                                                                                                           org.apache.hadoop.hbase.client.coprocessor.Batch.Call&lt;T,R&gt;&nbsp;callable)
+                                                                                                                    throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException,
+                                                                                                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
              interface for of a protobuf stub, so it is not possible to do it in an asynchronous
              way, even if now we are building the <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client"><code>Table</code></a> implementation based on the
@@ -1082,7 +1082,7 @@ default&nbsp;&lt;T extends com.google.protobuf.Service,R&gt;&nbsp;<a href="https
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>a map of result values keyed by region name</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code>com.google.protobuf.ServiceException</code></dd>
+<dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/client/Connection.html#toAsyncConnection--"><code>Connection.toAsyncConnection()</code></a></dd>
@@ -1096,13 +1096,13 @@ default&nbsp;&lt;T extends com.google.protobuf.Service,R&gt;&nbsp;<a href="https
 <li class="blockList">
 <h4>coprocessorService</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-default&nbsp;&lt;T extends com.google.protobuf.Service,R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.617">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;service,
-                                                                                      byte[]&nbsp;startKey,
-                                                                                      byte[]&nbsp;endKey,
-                                                                                      org.apache.hadoop.hbase.client.coprocessor.Batch.Call&lt;T,R&gt;&nbsp;callable,
-                                                                                      org.apache.hadoop.hbase.client.coprocessor.Batch.Callback&lt;R&gt;&nbsp;callback)
-                                                                               throws com.google.protobuf.ServiceException,
-                                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
+default&nbsp;&lt;T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.618">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;service,
+                                                                                                                  byte[]&nbsp;startKey,
+                                                                                                                  byte[]&nbsp;endKey,
+                                                                                                                  org.apache.hadoop.hbase.client.coprocessor.Batch.Call&lt;T,R&gt;&nbsp;callable,
+                                                                                                                  org.apache.hadoop.hbase.client.coprocessor.Batch.Callback&lt;R&gt;&nbsp;callback)
+                                                                                                           throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException,
+                                                                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
              interface for of a protobuf stub, so it is not possible to do it in an asynchronous
              way, even if now we are building the <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client"><code>Table</code></a> implementation based on the
@@ -1134,29 +1134,29 @@ default&nbsp;&lt;T extends com.google.protobuf.Service,R&gt;&nbsp;void&nbsp;<a h
           invoked once per table region, using the <code>Service</code> instance connected to that
           region.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code>com.google.protobuf.ServiceException</code></dd>
+<dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/client/Connection.html#toAsyncConnection--"><code>Connection.toAsyncConnection()</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-com.google.protobuf.Message-">
+<a name="batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-org.apache.hbase.thirdparty.com.google.protobuf.Message-">
 <!--   -->
-</a><a name="batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-">
+</a><a name="batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>batchCoprocessorService</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-default&nbsp;&lt;R extends com.google.protobuf.Message&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.645">batchCoprocessorService</a>(com.google.protobuf.Descriptors.MethodDescriptor&nbsp;methodDescriptor,
-                                                                                                  com.google.protobuf.Message&nbsp;request,
-                                                                                                  byte[]&nbsp;startKey,
-                                                                                                  byte[]&nbsp;endKey,
-                                                                                                  R&nbsp;responsePrototype)
-                                                                                           throws com.google.protobuf.ServiceException,
-                                                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
+default&nbsp;&lt;R extends org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.646">batchCoprocessorService</a>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;methodDescriptor,
+                                                                                                                              org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;request,
+                                                                                                                              byte[]&nbsp;startKey,
+                                                                                                                              byte[]&nbsp;endKey,
+                                                                                                                              R&nbsp;responsePrototype)
+                                                                                                                       throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException,
+                                                                                                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
              interface for of a protobuf stub, so it is not possible to do it in an asynchronous
              way, even if now we are building the <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client"><code>Table</code></a> implementation based on the
@@ -1180,30 +1180,30 @@ default&nbsp;&lt;R extends com.google.protobuf.Message&gt;&nbsp;<a href="https:/
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>a map of result values keyed by region name</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code>com.google.protobuf.ServiceException</code></dd>
+<dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/client/Connection.html#toAsyncConnection--"><code>Connection.toAsyncConnection()</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-com.google.protobuf.Message-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">
+<a name="batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">
 <!--   -->
-</a><a name="batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">
+</a><a name="batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>batchCoprocessorService</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-default&nbsp;&lt;R extends com.google.protobuf.Message&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.689">batchCoprocessorService</a>(com.google.protobuf.Descriptors.MethodDescriptor&nbsp;methodDescriptor,
-                                                                                         com.google.protobuf.Message&nbsp;request,
-                                                                                         byte[]&nbsp;startKey,
-                                                                                         byte[]&nbsp;endKey,
-                                                                                         R&nbsp;responsePrototype,
-                                                                                         org.apache.hadoop.hbase.client.coprocessor.Batch.Callback&lt;R&gt;&nbsp;callback)
-                                                                                  throws com.google.protobuf.ServiceException,
-                                                                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
+default&nbsp;&lt;R extends org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.690">batchCoprocessorService</a>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;methodDescriptor,
+                                                                                                                     org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;request,
+                                                                                                                     byte[]&nbsp;startKey,
+                                                                                                                     byte[]&nbsp;endKey,
+                                                                                                                     R&nbsp;responsePrototype,
+                                                                                                                     org.apache.hadoop.hbase.client.coprocessor.Batch.Callback&lt;R&gt;&nbsp;callback)
+                                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException,
+                                                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
              interface for of a protobuf stub, so it is not possible to do it in an asynchronous
              way, even if now we are building the <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client"><code>Table</code></a> implementation based on the
@@ -1231,7 +1231,7 @@ default&nbsp;&lt;R extends com.google.protobuf.Message&gt;&nbsp;void&nbsp;<a hre
 <dd><code>responsePrototype</code> - the proto type of the response of the method in Service.</dd>
 <dd><code>callback</code> - callback to invoke with the response for each region</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code>com.google.protobuf.ServiceException</code></dd>
+<dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/client/Connection.html#toAsyncConnection--"><code>Connection.toAsyncConnection()</code></a></dd>
@@ -1244,7 +1244,7 @@ default&nbsp;&lt;R extends com.google.protobuf.Message&gt;&nbsp;void&nbsp;<a hre
 <ul class="blockList">
 <li class="blockList">
 <h4>getRpcTimeout</h4>
-<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.704">getRpcTimeout</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</pre>
+<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.705">getRpcTimeout</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</pre>
 <div class="block">Get timeout of each rpc request in this Table instance. It will be overridden by a more
  specific rpc timeout config such as readRpcTimeout or writeRpcTimeout.</div>
 <dl>
@@ -1264,7 +1264,7 @@ default&nbsp;&lt;R extends com.google.protobuf.Message&gt;&nbsp;void&nbsp;<a hre
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadRpcTimeout</h4>
-<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.713">getReadRpcTimeout</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</pre>
+<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.714">getReadRpcTimeout</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</pre>
 <div class="block">Get timeout of each rpc read request in this Table instance.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1280,7 +1280,7 @@ default&nbsp;&lt;R extends com.google.protobuf.Message&gt;&nbsp;void&nbsp;<a hre
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteRpcTimeout</h4>
-<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.722">getWriteRpcTimeout</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</pre>
+<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.723">getWriteRpcTimeout</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</pre>
 <div class="block">Get timeout of each rpc write request in this Table instance.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1296,7 +1296,7 @@ default&nbsp;&lt;R extends com.google.protobuf.Message&gt;&nbsp;void&nbsp;<a hre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationTimeout</h4>
-<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.731">getOperationTimeout</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</pre>
+<pre>default&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/Table.html#line.732">getOperationTimeout</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</pre>
 <div class="block">Get timeout of each operation in Table instance.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/AsyncTable.CoprocessorCallback.html b/apidocs/org/apache/hadoop/hbase/client/class-use/AsyncTable.CoprocessorCallback.html
index f4df2cb..28d9586 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/AsyncTable.CoprocessorCallback.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/AsyncTable.CoprocessorCallback.html
@@ -106,7 +106,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>&lt;S,R&gt;&nbsp;org.apache.hadoop.hbase.client.AsyncTable.CoprocessorServiceBuilder&lt;S,R&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.client.AsyncTable.CoprocessorCallback-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in  [...]
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.client.AsyncTable.CoprocessorCallback-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in  [...]
                   <a href="../../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" title="interface in org.apache.hadoop.hbase.client">AsyncTable.CoprocessorCallback</a>&lt;R&gt;&nbsp;callback)</code>
 <div class="block">Execute a coprocessor call on the regions which are covered by a range.</div>
diff --git a/apidocs/org/apache/hadoop/hbase/client/class-use/ServiceCaller.html b/apidocs/org/apache/hadoop/hbase/client/class-use/ServiceCaller.html
index 7b3f8f9..05b2eae 100644
--- a/apidocs/org/apache/hadoop/hbase/client/class-use/ServiceCaller.html
+++ b/apidocs/org/apache/hadoop/hbase/client/class-use/ServiceCaller.html
@@ -106,14 +106,14 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;com.google.protobuf.RpcCha [...]
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;org.apache.hbase.thirdpart [...]
                   <a href="../../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable)</code>
 <div class="block">Execute the given coprocessor call on the master.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>&lt;S,R&gt;&nbsp;org.apache.hadoop.hbase.client.AsyncTable.CoprocessorServiceBuilder&lt;S,R&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.client.AsyncTable.CoprocessorCallback-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in  [...]
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.client.AsyncTable.CoprocessorCallback-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in  [...]
                   <a href="../../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" title="interface in org.apache.hadoop.hbase.client">AsyncTable.CoprocessorCallback</a>&lt;R&gt;&nbsp;callback)</code>
 <div class="block">Execute a coprocessor call on the regions which are covered by a range.</div>
@@ -121,7 +121,7 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-byte:A-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;com.google.protobuf [...]
+<td class="colLast"><span class="typeNameLabel">AsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncTable.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-byte:A-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;org.apache.hbase.th [...]
                   <a href="../../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                   byte[]&nbsp;row)</code>
 <div class="block">Execute the given coprocessor call on the region which contains the given <code>row</code>.</div>
@@ -129,7 +129,7 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>&lt;S,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.ServerName-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Functio [...]
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.ServiceCaller-org.apache.hadoop.hbase.ServerName-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Functio [...]
                   <a href="../../../../../../org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client">ServiceCaller</a>&lt;S,R&gt;&nbsp;callable,
                   <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</code>
 <div class="block">Execute the given coprocessor call on the given region server.</div>
diff --git a/apidocs/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html b/apidocs/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html
index 0967038..9403057 100644
--- a/apidocs/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html
+++ b/apidocs/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.36">BinaryComponentComparator</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.38">BinaryComponentComparator</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparable.html" title="class in org.apache.hadoop.hbase.filter">ByteArrayComparable</a></pre>
 <div class="block">A comparator which compares against a specified byte array, but only
  compares specific portion of the byte array. For the rest it is similar to
@@ -226,7 +226,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparab
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BinaryComponentComparator</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.45">BinaryComponentComparator</a>(byte[]&nbsp;value,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.47">BinaryComponentComparator</a>(byte[]&nbsp;value,
                                  int&nbsp;offset)</pre>
 <div class="block">Constructor</div>
 <dl>
@@ -250,7 +250,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparab
 <ul class="blockList">
 <li class="blockList">
 <h4>compareTo</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.51">compareTo</a>(byte[]&nbsp;value)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.53">compareTo</a>(byte[]&nbsp;value)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true#compareTo-T-" title="class or interface in java.lang">compareTo</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;byte[]&gt;</code></dd>
@@ -265,7 +265,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparab
 <ul class="blockList">
 <li class="blockList">
 <h4>compareTo</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.56">compareTo</a>(byte[]&nbsp;value,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.58">compareTo</a>(byte[]&nbsp;value,
                      int&nbsp;offset,
                      int&nbsp;length)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparable.html#compareTo-byte:A-int-int-">ByteArrayComparable</a></code></span></div>
@@ -290,7 +290,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparab
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.62">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;other)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.64">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;other)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -303,7 +303,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparab
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.75">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.77">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -316,7 +316,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparab
 <ul class="blockList">
 <li class="blockList">
 <h4>toByteArray</h4>
-<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.85">toByteArray</a>()</pre>
+<pre>public&nbsp;byte[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.87">toByteArray</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparable.html#toByteArray--">toByteArray</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparable.html" title="class in org.apache.hadoop.hbase.filter">ByteArrayComparable</a></code></dd>
@@ -331,7 +331,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/filter/ByteArrayComparab
 <ul class="blockListLast">
 <li class="blockList">
 <h4>parseFrom</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/BinaryComponentComparator.html" title="class in org.apache.hadoop.hbase.filter">BinaryComponentComparator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.99">parseFrom</a>(byte[]&nbsp;pbBytes)
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/BinaryComponentComparator.html" title="class in org.apache.hadoop.hbase.filter">BinaryComponentComparator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/filter/BinaryComponentComparator.html#line.101">parseFrom</a>(byte[]&nbsp;pbBytes)
                                            throws org.apache.hadoop.hbase.exceptions.DeserializationException</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
diff --git a/apidocs/org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html b/apidocs/org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html
index 107c264..5498163 100644
--- a/apidocs/org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html
+++ b/apidocs/org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html
@@ -95,7 +95,7 @@
 <li class="blockList">
 <dl>
 <dt>All Superinterfaces:</dt>
-<dd>com.google.protobuf.BlockingRpcChannel, com.google.protobuf.RpcChannel</dd>
+<dd>org.apache.hbase.thirdparty.com.google.protobuf.BlockingRpcChannel, org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel</dd>
 </dl>
 <hr>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -105,8 +105,8 @@
 <br>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
  @InterfaceAudience.Public
-public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html#line.36">CoprocessorRpcChannel</a>
-extends com.google.protobuf.RpcChannel, com.google.protobuf.BlockingRpcChannel</pre>
+public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html#line.37">CoprocessorRpcChannel</a>
+extends org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel, org.apache.hbase.thirdparty.com.google.protobuf.BlockingRpcChannel</pre>
 <div class="block">Base interface which provides clients with an RPC connection to call coprocessor endpoint
  <code>Service</code>s.
  <p/>
@@ -126,17 +126,17 @@ extends com.google.protobuf.RpcChannel, com.google.protobuf.BlockingRpcChannel</
 </a>
 <h3>Method Summary</h3>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.com.google.protobuf.RpcChannel">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel">
 <!--   -->
 </a>
-<h3>Methods inherited from interface&nbsp;com.google.protobuf.RpcChannel</h3>
+<h3>Methods inherited from interface&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel</h3>
 <code>callMethod</code></li>
 </ul>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.com.google.protobuf.BlockingRpcChannel">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hbase.thirdparty.com.google.protobuf.BlockingRpcChannel">
 <!--   -->
 </a>
-<h3>Methods inherited from interface&nbsp;com.google.protobuf.BlockingRpcChannel</h3>
+<h3>Methods inherited from interface&nbsp;org.apache.hbase.thirdparty.com.google.protobuf.BlockingRpcChannel</h3>
 <code>callBlockingMethod</code></li>
 </ul>
 </li>
diff --git a/apidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/apidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 864e70d..e75e8cf 100644
--- a/apidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -130,14 +130,14 @@
 </ul>
 <h2 title="Interface Hierarchy">Interface Hierarchy</h2>
 <ul>
-<li type="circle">com.google.protobuf.BlockingRpcChannel
+<li type="circle">org.apache.hbase.thirdparty.com.google.protobuf.BlockingRpcChannel
 <ul>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CoprocessorRpcChannel</span></a> (also extends com.google.protobuf.RpcChannel)</li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CoprocessorRpcChannel</span></a> (also extends org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel)</li>
 </ul>
 </li>
-<li type="circle">com.google.protobuf.RpcChannel
+<li type="circle">org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel
 <ul>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CoprocessorRpcChannel</span></a> (also extends com.google.protobuf.BlockingRpcChannel)</li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CoprocessorRpcChannel</span></a> (also extends org.apache.hbase.thirdparty.com.google.protobuf.BlockingRpcChannel)</li>
 </ul>
 </li>
 </ul>
diff --git a/apidocs/org/apache/hadoop/hbase/rest/client/RemoteHTable.html b/apidocs/org/apache/hadoop/hbase/rest/client/RemoteHTable.html
index 4c95dad..39c3fcc 100644
--- a/apidocs/org/apache/hadoop/hbase/rest/client/RemoteHTable.html
+++ b/apidocs/org/apache/hadoop/hbase/rest/client/RemoteHTable.html
@@ -192,9 +192,9 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
 </td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code>&lt;R extends com.google.protobuf.Message&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rest/client/RemoteHTable.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-">batchCoprocessorService</a></span>(com.google.protobuf.Descriptors.MethodDescriptor&nbsp;method,
-                       com.google.protobuf.Message&nbsp;request,
+<td class="colFirst"><code>&lt;R extends org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rest/client/RemoteHTable.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-">batchCoprocessorService</a></span>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;method,
+                       org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;request,
                        byte[]&nbsp;startKey,
                        byte[]&nbsp;endKey,
                        R&nbsp;responsePrototype)</code>
@@ -204,9 +204,9 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
 </td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code>&lt;R extends com.google.protobuf.Message&gt;<br>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rest/client/RemoteHTable.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCoprocessorService</a></span>(com.google.protobuf.Descriptors.MethodDescriptor&nbsp;method,
-                       com.google.protobuf.Message&nbsp;request,
+<td class="colFirst"><code>&lt;R extends org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;<br>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rest/client/RemoteHTable.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCoprocessorService</a></span>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;method,
+                       org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;request,
                        byte[]&nbsp;startKey,
                        byte[]&nbsp;endKey,
                        R&nbsp;responsePrototype,
@@ -265,7 +265,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
 </td>
 </tr>
 <tr id="i13" class="rowColor">
-<td class="colFirst"><code>&lt;T extends com.google.protobuf.Service,R&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;</code></td>
+<td class="colFirst"><code>&lt;T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rest/client/RemoteHTable.html#coprocessorService-java.lang.Class-byte:A-byte:A-org.apache.hadoop.hbase.client.coprocessor.Batch.Call-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;service,
                   byte[]&nbsp;startKey,
                   byte[]&nbsp;endKey,
@@ -277,7 +277,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
 </td>
 </tr>
 <tr id="i14" class="altColor">
-<td class="colFirst"><code>&lt;T extends com.google.protobuf.Service,R&gt;<br>void</code></td>
+<td class="colFirst"><code>&lt;T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R&gt;<br>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rest/client/RemoteHTable.html#coprocessorService-java.lang.Class-byte:A-byte:A-org.apache.hadoop.hbase.client.coprocessor.Batch.Call-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">coprocessorService</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;service,
                   byte[]&nbsp;startKey,
                   byte[]&nbsp;endKey,
@@ -1212,12 +1212,12 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>coprocessorService</h4>
-<pre>public&nbsp;&lt;T extends com.google.protobuf.Service,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/RemoteHTable.html#line.786">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt [...]
-                                                                                  byte[]&nbsp;startKey,
-                                                                                  byte[]&nbsp;endKey,
-                                                                                  org.apache.hadoop.hbase.client.coprocessor.Batch.Call&lt;T,R&gt;&nbsp;callable)
-                                                                           throws com.google.protobuf.ServiceException,
-                                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
+<pre>public&nbsp;&lt;T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/RemoteHTable.html#line.786">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interfac [...]
+                                                                                                              byte[]&nbsp;startKey,
+                                                                                                              byte[]&nbsp;endKey,
+                                                                                                              org.apache.hadoop.hbase.client.coprocessor.Batch.Call&lt;T,R&gt;&nbsp;callable)
+                                                                                                       throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException,
+                                                                                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#coprocessorService-java.lang.Class-byte:A-byte:A-org.apache.hadoop.hbase.client.coprocessor.Batch.Call-">Table</a></code></span></div>
 <div class="block">Creates an instance of the given <code>Service</code> subclass for each table
  region spanning the range from the <code>startKey</code> row to <code>endKey</code> row (inclusive), and
@@ -1243,7 +1243,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>a map of result values keyed by region name</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code>com.google.protobuf.ServiceException</code></dd>
+<dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html#toAsyncConnection--"><code>Connection.toAsyncConnection()</code></a></dd>
@@ -1256,13 +1256,13 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>coprocessorService</h4>
-<pre>public&nbsp;&lt;T extends com.google.protobuf.Service,R&gt;&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/RemoteHTable.html#line.792">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;service,
-                                                                         byte[]&nbsp;startKey,
-                                                                         byte[]&nbsp;endKey,
-                                                                         org.apache.hadoop.hbase.client.coprocessor.Batch.Call&lt;T,R&gt;&nbsp;callable,
-                                                                         org.apache.hadoop.hbase.client.coprocessor.Batch.Callback&lt;R&gt;&nbsp;callback)
-                                                                  throws com.google.protobuf.ServiceException,
-                                                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
+<pre>public&nbsp;&lt;T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R&gt;&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/RemoteHTable.html#line.792">coprocessorService</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;service,
+                                                                                                     byte[]&nbsp;startKey,
+                                                                                                     byte[]&nbsp;endKey,
+                                                                                                     org.apache.hadoop.hbase.client.coprocessor.Batch.Call&lt;T,R&gt;&nbsp;callable,
+                                                                                                     org.apache.hadoop.hbase.client.coprocessor.Batch.Callback&lt;R&gt;&nbsp;callback)
+                                                                                              throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException,
+                                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#coprocessorService-java.lang.Class-byte:A-byte:A-org.apache.hadoop.hbase.client.coprocessor.Batch.Call-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">Table</a></code></span></div>
 <div class="block">Creates an instance of the given <code>Service</code> subclass for each table
  region spanning the range from the <code>startKey</code> row to <code>endKey</code> row (inclusive), and
@@ -1292,7 +1292,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
           invoked once per table region, using the <code>Service</code> instance connected to that
           region.</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code>com.google.protobuf.ServiceException</code></dd>
+<dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html#toAsyncConnection--"><code>Connection.toAsyncConnection()</code></a></dd>
@@ -1320,29 +1320,29 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
 </dl>
 </li>
 </ul>
-<a name="batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-com.google.protobuf.Message-">
+<a name="batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-org.apache.hbase.thirdparty.com.google.protobuf.Message-">
 <!--   -->
-</a><a name="batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-">
+</a><a name="batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>batchCoprocessorService</h4>
-<pre>public&nbsp;&lt;R extends com.google.protobuf.Message&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/RemoteHTable.html#line.804">batchCoprocessorService</a>(com.google.protobuf.Descriptors.MethodDescriptor&nbsp;method,
-                                                                                     com.google.protobuf.Message&nbsp;request,
-                                                                                     byte[]&nbsp;startKey,
-                                                                                     byte[]&nbsp;endKey,
-                                                                                     R&nbsp;responsePrototype)
-                                                                              throws com.google.protobuf.ServiceException,
-                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-">Table</a></code></span></div>
+<pre>public&nbsp;&lt;R extends org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],R&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/RemoteHTable.html#line.804">batchCoprocessorService</a>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;method,
+                                                                                                                 org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;request,
+                                                                                                                 byte[]&nbsp;startKey,
+                                                                                                                 byte[]&nbsp;endKey,
+                                                                                                                 R&nbsp;responsePrototype)
+                                                                                                          throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException,
+                                                                                                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-">Table</a></code></span></div>
 <div class="block">Creates an instance of the given <code>Service</code> subclass for each table
  region spanning the range from the <code>startKey</code> row to <code>endKey</code> row (inclusive), all
  the invocations to the same region server will be batched into one call. The coprocessor
  service is invoked according to the service instance, method name and parameters.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-">batchCoprocessorService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a></code></dd>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-">batchCoprocessorService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a></code></dd>
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>R</code> - the response type for the coprocessor Service method</dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1356,30 +1356,30 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>a map of result values keyed by region name</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code>com.google.protobuf.ServiceException</code></dd>
+<dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html#toAsyncConnection--"><code>Connection.toAsyncConnection()</code></a></dd>
 </dl>
 </li>
 </ul>
-<a name="batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-com.google.protobuf.Message-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">
+<a name="batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-org.apache.hbase.thirdparty.com.google.protobuf.Message-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">
 <!--   -->
-</a><a name="batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">
+</a><a name="batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>batchCoprocessorService</h4>
-<pre>public&nbsp;&lt;R extends com.google.protobuf.Message&gt;&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/RemoteHTable.html#line.811">batchCoprocessorService</a>(com.google.protobuf.Descriptors.MethodDescriptor&nbsp;method,
-                                                                            com.google.protobuf.Message&nbsp;request,
-                                                                            byte[]&nbsp;startKey,
-                                                                            byte[]&nbsp;endKey,
-                                                                            R&nbsp;responsePrototype,
-                                                                            org.apache.hadoop.hbase.client.coprocessor.Batch.Callback&lt;R&gt;&nbsp;callback)
-                                                                     throws com.google.protobuf.ServiceException,
-                                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">Table</a></code></span></div>
+<pre>public&nbsp;&lt;R extends org.apache.hbase.thirdparty.com.google.protobuf.Message&gt;&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/rest/client/RemoteHTable.html#line.811">batchCoprocessorService</a>(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor&nbsp;method,
+                                                                                                        org.apache.hbase.thirdparty.com.google.protobuf.Message&nbsp;request,
+                                                                                                        byte[]&nbsp;startKey,
+                                                                                                        byte[]&nbsp;endKey,
+                                                                                                        R&nbsp;responsePrototype,
+                                                                                                        org.apache.hadoop.hbase.client.coprocessor.Batch.Callback&lt;R&gt;&nbsp;callback)
+                                                                                                 throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException,
+                                                                                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">Table</a></code></span></div>
 <div class="block">Creates an instance of the given <code>Service</code> subclass for each table
  region spanning the range from the <code>startKey</code> row to <code>endKey</code> row (inclusive), all
  the invocations to the same region server will be batched into one call. The coprocessor
@@ -1391,7 +1391,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
  </p></div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-com.google.protobuf.Descriptors.MethodDescriptor-com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCoprocessorService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a></code></dd>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html#batchCoprocessorService-org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor-org.apache.hbase.thirdparty.com.google.protobuf.Message-byte:A-byte:A-R-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-">batchCoprocessorService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.cl [...]
 <dt><span class="paramLabel">Type Parameters:</span></dt>
 <dd><code>R</code> - the response type for the coprocessor Service method</dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1404,7 +1404,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/client/Table.html"
 <dd><code>responsePrototype</code> - the proto type of the response of the method in Service.</dd>
 <dd><code>callback</code> - callback to invoke with the response for each region</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code>com.google.protobuf.ServiceException</code></dd>
+<dd><code>org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</code></dd>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html#toAsyncConnection--"><code>Connection.toAsyncConnection()</code></a></dd>
diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html
index c982afe..cac69ea 100644
--- a/apidocs/overview-tree.html
+++ b/apidocs/overview-tree.html
@@ -779,9 +779,9 @@
 <li type="circle">org.apache.hadoop.hbase.mapred.<a href="org/apache/hadoop/hbase/mapred/TableReduce.html" title="interface in org.apache.hadoop.hbase.mapred"><span class="typeNameLink">TableReduce</span></a>&lt;K,V&gt;</li>
 </ul>
 </li>
-<li type="circle">com.google.protobuf.BlockingRpcChannel
+<li type="circle">org.apache.hbase.thirdparty.com.google.protobuf.BlockingRpcChannel
 <ul>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CoprocessorRpcChannel</span></a> (also extends com.google.protobuf.RpcChannel)</li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CoprocessorRpcChannel</span></a> (also extends org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel)</li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/BufferedMutator.ExceptionListener.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">BufferedMutator.ExceptionListener</span></a></li>
@@ -850,9 +850,9 @@
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationPeerConfigBuilder.html" title="interface in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeerConfigBuilder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RequestController.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RequestController.Checker.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.Checker</span></a></li>
-<li type="circle">com.google.protobuf.RpcChannel
+<li type="circle">org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel
 <ul>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CoprocessorRpcChannel</span></a> (also extends com.google.protobuf.BlockingRpcChannel)</li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/CoprocessorRpcChannel.html" title="interface in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CoprocessorRpcChannel</span></a> (also extends org.apache.hbase.thirdparty.com.google.protobuf.BlockingRpcChannel)</li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ScanResultConsumerBase.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScanResultConsumerBase</span></a>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html b/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html
index 3fd8a7f..dae797d 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html
@@ -27,1618 +27,1619 @@
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import static org.apache.hadoop.hbase.util.FutureUtils.addListener;<a name="line.20"></a>
 <span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import com.google.protobuf.RpcChannel;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.io.IOException;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.Arrays;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.Collection;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.EnumSet;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.Map;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.Optional;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.Set;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.concurrent.CompletableFuture;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.function.Function;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.regex.Pattern;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.CacheEvictionStats;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.ClusterMetrics.Option;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.RegionMetrics;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ServerName;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.TableName;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.client.security.SecurityCapability;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.net.Address;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotView;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.replication.SyncReplicationState;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.rsgroup.RSGroupInfo;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.security.access.GetUserPermissionsRequest;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.security.access.UserPermission;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>/**<a name="line.57"></a>
-<span class="sourceLineNo">058</span> * The asynchronous administrative API for HBase.<a name="line.58"></a>
-<span class="sourceLineNo">059</span> * @since 2.0.0<a name="line.59"></a>
-<span class="sourceLineNo">060</span> */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>@InterfaceAudience.Public<a name="line.61"></a>
-<span class="sourceLineNo">062</span>public interface AsyncAdmin {<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  /**<a name="line.64"></a>
-<span class="sourceLineNo">065</span>   * @param tableName Table to check.<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * @return True if table exists already. The return value will be wrapped by a<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   *         {@link CompletableFuture}.<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName);<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  /**<a name="line.71"></a>
-<span class="sourceLineNo">072</span>   * List all the userspace tables.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   * @return - returns a list of TableDescriptors wrapped by a {@link CompletableFuture}.<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   */<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  default CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; listTableDescriptors() {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    return listTableDescriptors(false);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  /**<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   * List all the tables.<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   * @param includeSysTables False to match only against userspace tables<a name="line.81"></a>
-<span class="sourceLineNo">082</span>   * @return - returns a list of TableDescriptors wrapped by a {@link CompletableFuture}.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   */<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; listTableDescriptors(boolean includeSysTables);<a name="line.84"></a>
-<span class="sourceLineNo">085</span><a name="line.85"></a>
-<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * List all the tables matching the given pattern.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * @param pattern The compiled regular expression to match against<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   * @param includeSysTables False to match only against userspace tables<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   * @return - returns a list of TableDescriptors wrapped by a {@link CompletableFuture}.<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; listTableDescriptors(Pattern pattern,<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      boolean includeSysTables);<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  /**<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * List specific tables including system tables.<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   * @param tableNames the table list to match against<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   * @return - returns a list of TableDescriptors wrapped by a {@link CompletableFuture}.<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; listTableDescriptors(List&lt;TableName&gt; tableNames);<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  /**<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * Get list of table descriptors by namespace.<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * @param name namespace name<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * @return returns a list of TableDescriptors wrapped by a {@link CompletableFuture}.<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   */<a name="line.106"></a>
-<span class="sourceLineNo">107</span>  CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; listTableDescriptorsByNamespace(String name);<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>  /**<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * List all of the names of userspace tables.<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * @return a list of table names wrapped by a {@link CompletableFuture}.<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * @see #listTableNames(Pattern, boolean)<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   */<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  default CompletableFuture&lt;List&lt;TableName&gt;&gt; listTableNames() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    return listTableNames(false);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * List all of the names of tables.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   * @param includeSysTables False to match only against userspace tables<a name="line.120"></a>
-<span class="sourceLineNo">121</span>   * @return a list of table names wrapped by a {@link CompletableFuture}.<a name="line.121"></a>
-<span class="sourceLineNo">122</span>   */<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  CompletableFuture&lt;List&lt;TableName&gt;&gt; listTableNames(boolean includeSysTables);<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  /**<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * List all of the names of userspace tables.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @param pattern The regular expression to match against<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * @param includeSysTables False to match only against userspace tables<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   * @return a list of table names wrapped by a {@link CompletableFuture}.<a name="line.129"></a>
-<span class="sourceLineNo">130</span>   */<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  CompletableFuture&lt;List&lt;TableName&gt;&gt; listTableNames(Pattern pattern, boolean includeSysTables);<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  /**<a name="line.133"></a>
-<span class="sourceLineNo">134</span>   * Get list of table names by namespace.<a name="line.134"></a>
-<span class="sourceLineNo">135</span>   * @param name namespace name<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * @return The list of table names in the namespace wrapped by a {@link CompletableFuture}.<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   */<a name="line.137"></a>
-<span class="sourceLineNo">138</span>  CompletableFuture&lt;List&lt;TableName&gt;&gt; listTableNamesByNamespace(String name);<a name="line.138"></a>
-<span class="sourceLineNo">139</span><a name="line.139"></a>
-<span class="sourceLineNo">140</span>  /**<a name="line.140"></a>
-<span class="sourceLineNo">141</span>   * Method for getting the tableDescriptor<a name="line.141"></a>
-<span class="sourceLineNo">142</span>   * @param tableName as a {@link TableName}<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   * @return the read-only tableDescriptor wrapped by a {@link CompletableFuture}.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   */<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  CompletableFuture&lt;TableDescriptor&gt; getDescriptor(TableName tableName);<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * Creates a new table.<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * @param desc table descriptor for table<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc);<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  /**<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   * Creates a new table with the specified number of regions. The start key specified will become<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   * the end key of the first region of the table, and the end key specified will become the start<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * key of the last region of the table (the first region has a null start key and the last region<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * has a null end key). BigInteger math will be used to divide the key range specified into enough<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   * segments to make the required number of total regions.<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * @param desc table descriptor for table<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   * @param startKey beginning of key range<a name="line.160"></a>
-<span class="sourceLineNo">161</span>   * @param endKey end of key range<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * @param numRegions the total number of regions to create<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      int numRegions);<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  /**<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * Creates a new table with an initial set of empty regions defined by the specified split keys.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * The total number of regions created will be the number of split keys plus one.<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * Note : Avoid passing empty split key.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * @param desc table descriptor for table<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   * @param splitKeys array of split keys for the initial regions of the table<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys);<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>  /**<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   * Modify an existing table, more IRB friendly version.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * @param desc modified description of the table<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   */<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  CompletableFuture&lt;Void&gt; modifyTable(TableDescriptor desc);<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>  /**<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * Deletes a table.<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * @param tableName name of table to delete<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  CompletableFuture&lt;Void&gt; deleteTable(TableName tableName);<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  /**<a name="line.188"></a>
-<span class="sourceLineNo">189</span>   * Truncate a table.<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * @param tableName name of table to truncate<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   * @param preserveSplits True if the splits should be preserved<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   */<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  CompletableFuture&lt;Void&gt; truncateTable(TableName tableName, boolean preserveSplits);<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  /**<a name="line.195"></a>
-<span class="sourceLineNo">196</span>   * Enable a table. The table has to be in disabled state for it to be enabled.<a name="line.196"></a>
-<span class="sourceLineNo">197</span>   * @param tableName name of the table<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   */<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  CompletableFuture&lt;Void&gt; enableTable(TableName tableName);<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  /**<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * Disable a table. The table has to be in enabled state for it to be disabled.<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   * @param tableName<a name="line.203"></a>
-<span class="sourceLineNo">204</span>   */<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  CompletableFuture&lt;Void&gt; disableTable(TableName tableName);<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  /**<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * @param tableName name of table to check<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * @return true if table is on-line. The return value will be wrapped by a<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   *         {@link CompletableFuture}.<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  CompletableFuture&lt;Boolean&gt; isTableEnabled(TableName tableName);<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * @param tableName name of table to check<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   * @return true if table is off-line. The return value will be wrapped by a<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   *         {@link CompletableFuture}.<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  CompletableFuture&lt;Boolean&gt; isTableDisabled(TableName tableName);<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  /**<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   * @param tableName name of table to check<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   * @return true if all regions of the table are available. The return value will be wrapped by a<a name="line.223"></a>
-<span class="sourceLineNo">224</span>   *         {@link CompletableFuture}.<a name="line.224"></a>
-<span class="sourceLineNo">225</span>   */<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  CompletableFuture&lt;Boolean&gt; isTableAvailable(TableName tableName);<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  /**<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   * Add a column family to an existing table.<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   * @param tableName name of the table to add column family to<a name="line.230"></a>
-<span class="sourceLineNo">231</span>   * @param columnFamily column family descriptor of column family to be added<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   */<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  CompletableFuture&lt;Void&gt; addColumnFamily(TableName tableName,<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      ColumnFamilyDescriptor columnFamily);<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>  /**<a name="line.236"></a>
-<span class="sourceLineNo">237</span>   * Delete a column family from a table.<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   * @param tableName name of table<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * @param columnFamily name of column family to be deleted<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   */<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  CompletableFuture&lt;Void&gt; deleteColumnFamily(TableName tableName, byte[] columnFamily);<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>  /**<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   * Modify an existing column family on a table.<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * @param tableName name of table<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   * @param columnFamily new column family descriptor to use<a name="line.246"></a>
-<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
-<span class="sourceLineNo">248</span>  CompletableFuture&lt;Void&gt; modifyColumnFamily(TableName tableName,<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      ColumnFamilyDescriptor columnFamily);<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>  /**<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * Create a new namespace.<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * @param descriptor descriptor which describes the new namespace<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   */<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  CompletableFuture&lt;Void&gt; createNamespace(NamespaceDescriptor descriptor);<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>  /**<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * Modify an existing namespace.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * @param descriptor descriptor which describes the new namespace<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  CompletableFuture&lt;Void&gt; modifyNamespace(NamespaceDescriptor descriptor);<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /**<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * Delete an existing namespace. Only empty namespaces (no tables) can be removed.<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * @param name namespace name<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   */<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  CompletableFuture&lt;Void&gt; deleteNamespace(String name);<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  /**<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * Get a namespace descriptor by name<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param name name of namespace descriptor<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @return A descriptor wrapped by a {@link CompletableFuture}.<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   */<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  CompletableFuture&lt;NamespaceDescriptor&gt; getNamespaceDescriptor(String name);<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  /**<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   * List available namespaces<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   * @return List of namespaces wrapped by a {@link CompletableFuture}.<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   */<a name="line.279"></a>
-<span class="sourceLineNo">280</span>  CompletableFuture&lt;List&lt;String&gt;&gt; listNamespaces();<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span>  /**<a name="line.282"></a>
-<span class="sourceLineNo">283</span>   * List available namespace descriptors<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * @return List of descriptors wrapped by a {@link CompletableFuture}.<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   */<a name="line.285"></a>
-<span class="sourceLineNo">286</span>  CompletableFuture&lt;List&lt;NamespaceDescriptor&gt;&gt; listNamespaceDescriptors();<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span>  /**<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * Get all the online regions on a region server.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  CompletableFuture&lt;List&lt;RegionInfo&gt;&gt; getRegions(ServerName serverName);<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>  /**<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   * Get the regions of a given table.<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   */<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  CompletableFuture&lt;List&lt;RegionInfo&gt;&gt; getRegions(TableName tableName);<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>  /**<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * Flush a table.<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   * @param tableName table to flush<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   */<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  CompletableFuture&lt;Void&gt; flush(TableName tableName);<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>  /**<a name="line.304"></a>
-<span class="sourceLineNo">305</span>   * Flush an individual region.<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * @param regionName region to flush<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   */<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  CompletableFuture&lt;Void&gt; flushRegion(byte[] regionName);<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  /**<a name="line.310"></a>
-<span class="sourceLineNo">311</span>   * Flush all region on the region server.<a name="line.311"></a>
-<span class="sourceLineNo">312</span>   * @param serverName server to flush<a name="line.312"></a>
-<span class="sourceLineNo">313</span>   */<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  CompletableFuture&lt;Void&gt; flushRegionServer(ServerName serverName);<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  /**<a name="line.316"></a>
-<span class="sourceLineNo">317</span>   * Compact a table. When the returned CompletableFuture is done, it only means the compact request<a name="line.317"></a>
-<span class="sourceLineNo">318</span>   * was sent to HBase and may need some time to finish the compact operation.<a name="line.318"></a>
-<span class="sourceLineNo">319</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found.<a name="line.319"></a>
-<span class="sourceLineNo">320</span>   * @param tableName table to compact<a name="line.320"></a>
-<span class="sourceLineNo">321</span>   */<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  default CompletableFuture&lt;Void&gt; compact(TableName tableName) {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    return compact(tableName, CompactType.NORMAL);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  }<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span>  /**<a name="line.326"></a>
-<span class="sourceLineNo">327</span>   * Compact a column family within a table. When the returned CompletableFuture is done, it only<a name="line.327"></a>
-<span class="sourceLineNo">328</span>   * means the compact request was sent to HBase and may need some time to finish the compact<a name="line.328"></a>
-<span class="sourceLineNo">329</span>   * operation.<a name="line.329"></a>
-<span class="sourceLineNo">330</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found.<a name="line.330"></a>
-<span class="sourceLineNo">331</span>   * @param tableName table to compact<a name="line.331"></a>
-<span class="sourceLineNo">332</span>   * @param columnFamily column family within a table. If not present, compact the table's all<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   *          column families.<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   */<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  default CompletableFuture&lt;Void&gt; compact(TableName tableName, byte[] columnFamily) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    return compact(tableName, columnFamily, CompactType.NORMAL);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>  /**<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   * Compact a table. When the returned CompletableFuture is done, it only means the compact request<a name="line.340"></a>
-<span class="sourceLineNo">341</span>   * was sent to HBase and may need some time to finish the compact operation.<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found for<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   * normal compaction type.<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   * @param tableName table to compact<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * @param compactType {@link org.apache.hadoop.hbase.client.CompactType}<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   */<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  CompletableFuture&lt;Void&gt; compact(TableName tableName, CompactType compactType);<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>  /**<a name="line.349"></a>
-<span class="sourceLineNo">350</span>   * Compact a column family within a table. When the returned CompletableFuture is done, it only<a name="line.350"></a>
-<span class="sourceLineNo">351</span>   * means the compact request was sent to HBase and may need some time to finish the compact<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * operation.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found for<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   * normal compaction type.<a name="line.354"></a>
-<span class="sourceLineNo">355</span>   * @param tableName table to compact<a name="line.355"></a>
-<span class="sourceLineNo">356</span>   * @param columnFamily column family within a table<a name="line.356"></a>
-<span class="sourceLineNo">357</span>   * @param compactType {@link org.apache.hadoop.hbase.client.CompactType}<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   */<a name="line.358"></a>
-<span class="sourceLineNo">359</span>  CompletableFuture&lt;Void&gt; compact(TableName tableName, byte[] columnFamily,<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      CompactType compactType);<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>  /**<a name="line.362"></a>
-<span class="sourceLineNo">363</span>   * Compact an individual region. When the returned CompletableFuture is done, it only means the<a name="line.363"></a>
-<span class="sourceLineNo">364</span>   * compact request was sent to HBase and may need some time to finish the compact operation.<a name="line.364"></a>
-<span class="sourceLineNo">365</span>   * @param regionName region to compact<a name="line.365"></a>
-<span class="sourceLineNo">366</span>   */<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  CompletableFuture&lt;Void&gt; compactRegion(byte[] regionName);<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  /**<a name="line.369"></a>
-<span class="sourceLineNo">370</span>   * Compact a column family within a region. When the returned CompletableFuture is done, it only<a name="line.370"></a>
-<span class="sourceLineNo">371</span>   * means the compact request was sent to HBase and may need some time to finish the compact<a name="line.371"></a>
-<span class="sourceLineNo">372</span>   * operation.<a name="line.372"></a>
-<span class="sourceLineNo">373</span>   * @param regionName region to compact<a name="line.373"></a>
-<span class="sourceLineNo">374</span>   * @param columnFamily column family within a region. If not present, compact the region's all<a name="line.374"></a>
-<span class="sourceLineNo">375</span>   *          column families.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>   */<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  CompletableFuture&lt;Void&gt; compactRegion(byte[] regionName, byte[] columnFamily);<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  /**<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   * Major compact a table. When the returned CompletableFuture is done, it only means the compact<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   * request was sent to HBase and may need some time to finish the compact operation.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found.<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * @param tableName table to major compact<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  default CompletableFuture&lt;Void&gt; majorCompact(TableName tableName) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    return majorCompact(tableName, CompactType.NORMAL);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>  /**<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   * Major compact a column family within a table. When the returned CompletableFuture is done, it<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * only means the compact request was sent to HBase and may need some time to finish the compact<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * operation.<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found for<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * normal compaction. type.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   * @param tableName table to major compact<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   * @param columnFamily column family within a table. If not present, major compact the table's all<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   *          column families.<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  default CompletableFuture&lt;Void&gt; majorCompact(TableName tableName, byte[] columnFamily) {<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    return majorCompact(tableName, columnFamily, CompactType.NORMAL);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  }<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>  /**<a name="line.403"></a>
-<span class="sourceLineNo">404</span>   * Major compact a table. When the returned CompletableFuture is done, it only means the compact<a name="line.404"></a>
-<span class="sourceLineNo">405</span>   * request was sent to HBase and may need some time to finish the compact operation.<a name="line.405"></a>
-<span class="sourceLineNo">406</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found for<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * normal compaction type.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   * @param tableName table to major compact<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   * @param compactType {@link org.apache.hadoop.hbase.client.CompactType}<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   */<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  CompletableFuture&lt;Void&gt; majorCompact(TableName tableName, CompactType compactType);<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  /**<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   * Major compact a column family within a table. When the returned CompletableFuture is done, it<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   * only means the compact request was sent to HBase and may need some time to finish the compact<a name="line.415"></a>
-<span class="sourceLineNo">416</span>   * operation.<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found.<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @param tableName table to major compact<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * @param columnFamily column family within a table. If not present, major compact the table's all<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   *          column families.<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   * @param compactType {@link org.apache.hadoop.hbase.client.CompactType}<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   */<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  CompletableFuture&lt;Void&gt; majorCompact(TableName tableName, byte[] columnFamily,<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      CompactType compactType);<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>  /**<a name="line.426"></a>
-<span class="sourceLineNo">427</span>   * Major compact a region. When the returned CompletableFuture is done, it only means the compact<a name="line.427"></a>
-<span class="sourceLineNo">428</span>   * request was sent to HBase and may need some time to finish the compact operation.<a name="line.428"></a>
-<span class="sourceLineNo">429</span>   * @param regionName region to major compact<a name="line.429"></a>
-<span class="sourceLineNo">430</span>   */<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  CompletableFuture&lt;Void&gt; majorCompactRegion(byte[] regionName);<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   * Major compact a column family within region. When the returned CompletableFuture is done, it<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * only means the compact request was sent to HBase and may need some time to finish the compact<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * operation.<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * @param regionName region to major compact<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   * @param columnFamily column family within a region. If not present, major compact the region's<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   *          all column families.<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   */<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  CompletableFuture&lt;Void&gt; majorCompactRegion(byte[] regionName, byte[] columnFamily);<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>  /**<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * Compact all regions on the region server.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   * @param serverName the region server name<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   */<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  CompletableFuture&lt;Void&gt; compactRegionServer(ServerName serverName);<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span>  /**<a name="line.449"></a>
-<span class="sourceLineNo">450</span>   * Compact all regions on the region server.<a name="line.450"></a>
-<span class="sourceLineNo">451</span>   * @param serverName the region server name<a name="line.451"></a>
-<span class="sourceLineNo">452</span>   */<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  CompletableFuture&lt;Void&gt; majorCompactRegionServer(ServerName serverName);<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span>  /**<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * Turn the Merge switch on or off.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @param enabled enabled or not<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * @return Previous switch value wrapped by a {@link CompletableFuture}<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   */<a name="line.459"></a>
-<span class="sourceLineNo">460</span>  default CompletableFuture&lt;Boolean&gt; mergeSwitch(boolean enabled) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    return mergeSwitch(enabled, false);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  }<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * Turn the Merge switch on or off.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * &lt;p/&gt;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * Notice that, the method itself is always non-blocking, which means it will always return<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   * immediately. The {@code drainMerges} parameter only effects when will we complete the returned<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   * {@link CompletableFuture}.<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   * @param enabled enabled or not<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   * @param drainMerges If &lt;code&gt;true&lt;/code&gt;, it waits until current merge() call, if outstanding,<a name="line.471"></a>
-<span class="sourceLineNo">472</span>   *          to return.<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * @return Previous switch value wrapped by a {@link CompletableFuture}<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   */<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  CompletableFuture&lt;Boolean&gt; mergeSwitch(boolean enabled, boolean drainMerges);<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>  /**<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * Query the current state of the Merge switch.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @return true if the switch is on, false otherwise. The return value will be wrapped by a<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   *         {@link CompletableFuture}<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   */<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  CompletableFuture&lt;Boolean&gt; isMergeEnabled();<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  /**<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * Turn the Split switch on or off.<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * @param enabled enabled or not<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * @return Previous switch value wrapped by a {@link CompletableFuture}<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   */<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  default CompletableFuture&lt;Boolean&gt; splitSwitch(boolean enabled) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    return splitSwitch(enabled, false);<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  }<a name="line.491"></a>
-<span class="sourceLineNo">492</span><a name="line.492"></a>
-<span class="sourceLineNo">493</span>  /**<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * Turn the Split switch on or off.<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * &lt;p/&gt;<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   * Notice that, the method itself is always non-blocking, which means it will always return<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * immediately. The {@code drainSplits} parameter only effects when will we complete the returned<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * {@link CompletableFuture}.<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * @param enabled enabled or not<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * @param drainSplits If &lt;code&gt;true&lt;/code&gt;, it waits until current split() call, if outstanding,<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   *          to return.<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   * @return Previous switch value wrapped by a {@link CompletableFuture}<a name="line.502"></a>
-<span class="sourceLineNo">503</span>   */<a name="line.503"></a>
-<span class="sourceLineNo">504</span>  CompletableFuture&lt;Boolean&gt; splitSwitch(boolean enabled, boolean drainSplits);<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span>  /**<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   * Query the current state of the Split switch.<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   * @return true if the switch is on, false otherwise. The return value will be wrapped by a<a name="line.508"></a>
-<span class="sourceLineNo">509</span>   *         {@link CompletableFuture}<a name="line.509"></a>
-<span class="sourceLineNo">510</span>   */<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  CompletableFuture&lt;Boolean&gt; isSplitEnabled();<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  /**<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   * Merge two regions.<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * @param nameOfRegionA encoded or full name of region a<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * @param nameOfRegionB encoded or full name of region b<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * @param forcible true if do a compulsory merge, otherwise we will only merge two adjacent<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   *          regions<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @deprecated since 2.3.0 and will be removed in 4.0.0.Use {@link #mergeRegions(List, boolean)}<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   *             instead.<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   */<a name="line.521"></a>
-<span class="sourceLineNo">522</span>  @Deprecated<a name="line.522"></a>
-<span class="sourceLineNo">523</span>  default CompletableFuture&lt;Void&gt; mergeRegions(byte[] nameOfRegionA, byte[] nameOfRegionB,<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      boolean forcible) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    return mergeRegions(Arrays.asList(nameOfRegionA, nameOfRegionB), forcible);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>  }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>  /**<a name="line.528"></a>
-<span class="sourceLineNo">529</span>   * Merge multiple regions (&gt;=2).<a name="line.529"></a>
-<span class="sourceLineNo">530</span>   * @param nameOfRegionsToMerge encoded or full name of daughter regions<a name="line.530"></a>
-<span class="sourceLineNo">531</span>   * @param forcible true if do a compulsory merge, otherwise we will only merge two adjacent<a name="line.531"></a>
-<span class="sourceLineNo">532</span>   *          regions<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   */<a name="line.533"></a>
-<span class="sourceLineNo">534</span>  CompletableFuture&lt;Void&gt; mergeRegions(List&lt;byte[]&gt; nameOfRegionsToMerge, boolean forcible);<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>  /**<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   * Split a table. The method will execute split action for each region in table.<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   * @param tableName table to split<a name="line.538"></a>
-<span class="sourceLineNo">539</span>   */<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  CompletableFuture&lt;Void&gt; split(TableName tableName);<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * Split an individual region.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * @param regionName region to split<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   */<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  CompletableFuture&lt;Void&gt; splitRegion(byte[] regionName);<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>  /**<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * Split a table.<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param tableName table to split<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * @param splitPoint the explicit position to split on<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   */<a name="line.552"></a>
-<span class="sourceLineNo">553</span>  CompletableFuture&lt;Void&gt; split(TableName tableName, byte[] splitPoint);<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
-<span class="sourceLineNo">555</span>  /**<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * Split an individual region.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   * @param regionName region to split<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param splitPoint the explicit position to split on. If not present, it will decide by region<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   *          server.<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   */<a name="line.560"></a>
-<span class="sourceLineNo">561</span>  CompletableFuture&lt;Void&gt; splitRegion(byte[] regionName, byte[] splitPoint);<a name="line.561"></a>
-<span class="sourceLineNo">562</span><a name="line.562"></a>
-<span class="sourceLineNo">563</span>  /**<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   * @param regionName Encoded or full name of region to assign.<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   */<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  CompletableFuture&lt;Void&gt; assign(byte[] regionName);<a name="line.566"></a>
-<span class="sourceLineNo">567</span><a name="line.567"></a>
-<span class="sourceLineNo">568</span>  /**<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   * Unassign a region from current hosting regionserver. Region will then be assigned to a<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * regionserver chosen at random. Region could be reassigned back to the same server. Use<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   * {@link #move(byte[], ServerName)} if you want to control the region movement.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   * @param regionName Encoded or full name of region to unassign. Will clear any existing<a name="line.572"></a>
-<span class="sourceLineNo">573</span>   *          RegionPlan if one found.<a name="line.573"></a>
-<span class="sourceLineNo">574</span>   * @param forcible If true, force unassign (Will remove region from regions-in-transition too if<a name="line.574"></a>
-<span class="sourceLineNo">575</span>   *          present. If results in double assignment use hbck -fix to resolve. To be used by<a name="line.575"></a>
-<span class="sourceLineNo">576</span>   *          experts).<a name="line.576"></a>
-<span class="sourceLineNo">577</span>   */<a name="line.577"></a>
-<span class="sourceLineNo">578</span>  CompletableFuture&lt;Void&gt; unassign(byte[] regionName, boolean forcible);<a name="line.578"></a>
-<span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>  /**<a name="line.580"></a>
-<span class="sourceLineNo">581</span>   * Offline specified region from master's in-memory state. It will not attempt to reassign the<a name="line.581"></a>
-<span class="sourceLineNo">582</span>   * region as in unassign. This API can be used when a region not served by any region server and<a name="line.582"></a>
-<span class="sourceLineNo">583</span>   * still online as per Master's in memory state. If this API is incorrectly used on active region<a name="line.583"></a>
-<span class="sourceLineNo">584</span>   * then master will loose track of that region. This is a special method that should be used by<a name="line.584"></a>
-<span class="sourceLineNo">585</span>   * experts or hbck.<a name="line.585"></a>
-<span class="sourceLineNo">586</span>   * @param regionName Encoded or full name of region to offline<a name="line.586"></a>
-<span class="sourceLineNo">587</span>   */<a name="line.587"></a>
-<span class="sourceLineNo">588</span>  CompletableFuture&lt;Void&gt; offline(byte[] regionName);<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span>  /**<a name="line.590"></a>
-<span class="sourceLineNo">591</span>   * Move the region &lt;code&gt;r&lt;/code&gt; to a random server.<a name="line.591"></a>
-<span class="sourceLineNo">592</span>   * @param regionName Encoded or full name of region to move.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   */<a name="line.593"></a>
-<span class="sourceLineNo">594</span>  CompletableFuture&lt;Void&gt; move(byte[] regionName);<a name="line.594"></a>
-<span class="sourceLineNo">595</span><a name="line.595"></a>
-<span class="sourceLineNo">596</span>  /**<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * Move the region &lt;code&gt;r&lt;/code&gt; to &lt;code&gt;dest&lt;/code&gt;.<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * @param regionName Encoded or full name of region to move.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * @param destServerName The servername of the destination regionserver. If not present, we'll<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   *          assign to a random server. A server name is made of host, port and startcode. Here is<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   *          an example: &lt;code&gt; host187.example.com,60020,1289493121758&lt;/code&gt;<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   */<a name="line.602"></a>
-<span class="sourceLineNo">603</span>  CompletableFuture&lt;Void&gt; move(byte[] regionName, ServerName destServerName);<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>  /**<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   * Apply the new quota settings.<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * @param quota the quota settings<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   */<a name="line.608"></a>
-<span class="sourceLineNo">609</span>  CompletableFuture&lt;Void&gt; setQuota(QuotaSettings quota);<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span>  /**<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   * List the quotas based on the filter.<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * @param filter the quota settings filter<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   * @return the QuotaSetting list, which wrapped by a CompletableFuture.<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   */<a name="line.615"></a>
-<span class="sourceLineNo">616</span>  CompletableFuture&lt;List&lt;QuotaSettings&gt;&gt; getQuota(QuotaFilter filter);<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>  /**<a name="line.618"></a>
-<span class="sourceLineNo">619</span>   * Add a new replication peer for replicating data to slave cluster<a name="line.619"></a>
-<span class="sourceLineNo">620</span>   * @param peerId a short name that identifies the peer<a name="line.620"></a>
-<span class="sourceLineNo">621</span>   * @param peerConfig configuration for the replication slave cluster<a name="line.621"></a>
-<span class="sourceLineNo">622</span>   */<a name="line.622"></a>
-<span class="sourceLineNo">623</span>  default CompletableFuture&lt;Void&gt; addReplicationPeer(String peerId,<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      ReplicationPeerConfig peerConfig) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>    return addReplicationPeer(peerId, peerConfig, true);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>  }<a name="line.626"></a>
-<span class="sourceLineNo">627</span><a name="line.627"></a>
-<span class="sourceLineNo">628</span>  /**<a name="line.628"></a>
-<span class="sourceLineNo">629</span>   * Add a new replication peer for replicating data to slave cluster<a name="line.629"></a>
-<span class="sourceLineNo">630</span>   * @param peerId a short name that identifies the peer<a name="line.630"></a>
-<span class="sourceLineNo">631</span>   * @param peerConfig configuration for the replication slave cluster<a name="line.631"></a>
-<span class="sourceLineNo">632</span>   * @param enabled peer state, true if ENABLED and false if DISABLED<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   */<a name="line.633"></a>
-<span class="sourceLineNo">634</span>  CompletableFuture&lt;Void&gt; addReplicationPeer(String peerId,<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      ReplicationPeerConfig peerConfig, boolean enabled);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>  /**<a name="line.637"></a>
-<span class="sourceLineNo">638</span>   * Remove a peer and stop the replication<a name="line.638"></a>
-<span class="sourceLineNo">639</span>   * @param peerId a short name that identifies the peer<a name="line.639"></a>
-<span class="sourceLineNo">640</span>   */<a name="line.640"></a>
-<span class="sourceLineNo">641</span>  CompletableFuture&lt;Void&gt; removeReplicationPeer(String peerId);<a name="line.641"></a>
-<span class="sourceLineNo">642</span><a name="line.642"></a>
-<span class="sourceLineNo">643</span>  /**<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * Restart the replication stream to the specified peer<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   * @param peerId a short name that identifies the peer<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   */<a name="line.646"></a>
-<span class="sourceLineNo">647</span>  CompletableFuture&lt;Void&gt; enableReplicationPeer(String peerId);<a name="line.647"></a>
-<span class="sourceLineNo">648</span><a name="line.648"></a>
-<span class="sourceLineNo">649</span>  /**<a name="line.649"></a>
-<span class="sourceLineNo">650</span>   * Stop the replication stream to the specified peer<a name="line.650"></a>
-<span class="sourceLineNo">651</span>   * @param peerId a short name that identifies the peer<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   */<a name="line.652"></a>
-<span class="sourceLineNo">653</span>  CompletableFuture&lt;Void&gt; disableReplicationPeer(String peerId);<a name="line.653"></a>
-<span class="sourceLineNo">654</span><a name="line.654"></a>
-<span class="sourceLineNo">655</span>  /**<a name="line.655"></a>
-<span class="sourceLineNo">656</span>   * Returns the configured ReplicationPeerConfig for the specified peer<a name="line.656"></a>
-<span class="sourceLineNo">657</span>   * @param peerId a short name that identifies the peer<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   * @return ReplicationPeerConfig for the peer wrapped by a {@link CompletableFuture}.<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   */<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  CompletableFuture&lt;ReplicationPeerConfig&gt; getReplicationPeerConfig(String peerId);<a name="line.660"></a>
-<span class="sourceLineNo">661</span><a name="line.661"></a>
-<span class="sourceLineNo">662</span>  /**<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   * Update the peerConfig for the specified peer<a name="line.663"></a>
-<span class="sourceLineNo">664</span>   * @param peerId a short name that identifies the peer<a name="line.664"></a>
-<span class="sourceLineNo">665</span>   * @param peerConfig new config for the peer<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   */<a name="line.666"></a>
-<span class="sourceLineNo">667</span>  CompletableFuture&lt;Void&gt; updateReplicationPeerConfig(String peerId,<a name="line.667"></a>
-<span class="sourceLineNo">668</span>      ReplicationPeerConfig peerConfig);<a name="line.668"></a>
-<span class="sourceLineNo">669</span><a name="line.669"></a>
-<span class="sourceLineNo">670</span>  /**<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * Transit current cluster to a new state in a synchronous replication peer.<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * @param peerId a short name that identifies the peer<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @param state a new state of current cluster<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   */<a name="line.674"></a>
-<span class="sourceLineNo">675</span>  CompletableFuture&lt;Void&gt; transitReplicationPeerSyncReplicationState(String peerId,<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      SyncReplicationState state);<a name="line.676"></a>
-<span class="sourceLineNo">677</span><a name="line.677"></a>
-<span class="sourceLineNo">678</span>  /**<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   * Get the current cluster state in a synchronous replication peer.<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   * @param peerId a short name that identifies the peer<a name="line.680"></a>
-<span class="sourceLineNo">681</span>   * @return the current cluster state wrapped by a {@link CompletableFuture}.<a name="line.681"></a>
-<span class="sourceLineNo">682</span>   */<a name="line.682"></a>
-<span class="sourceLineNo">683</span>  default CompletableFuture&lt;SyncReplicationState&gt; getReplicationPeerSyncReplicationState(<a name="line.683"></a>
-<span class="sourceLineNo">684</span>      String peerId) {<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    CompletableFuture&lt;SyncReplicationState&gt; future = new CompletableFuture&lt;&gt;();<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    addListener(listReplicationPeers(Pattern.compile(peerId)), (peers, error) -&gt; {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      if (error != null) {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>        future.completeExceptionally(error);<a name="line.688"></a>
-<span class="sourceLineNo">689</span>      } else if (peers.isEmpty() || !peers.get(0).getPeerId().equals(peerId)) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>        future<a name="line.690"></a>
-<span class="sourceLineNo">691</span>          .completeExceptionally(new IOException("Replication peer " + peerId + " does not exist"));<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      } else {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        future.complete(peers.get(0).getSyncReplicationState());<a name="line.693"></a>
-<span class="sourceLineNo">694</span>      }<a name="line.694"></a>
-<span class="sourceLineNo">695</span>    });<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    return future;<a name="line.696"></a>
-<span class="sourceLineNo">697</span>  }<a name="line.697"></a>
-<span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>  /**<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   * Append the replicable table-cf config of the specified peer<a name="line.700"></a>
-<span class="sourceLineNo">701</span>   * @param peerId a short that identifies the cluster<a name="line.701"></a>
-<span class="sourceLineNo">702</span>   * @param tableCfs A map from tableName to column family names<a name="line.702"></a>
-<span class="sourceLineNo">703</span>   */<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  CompletableFuture&lt;Void&gt; appendReplicationPeerTableCFs(String peerId,<a name="line.704"></a>
-<span class="sourceLineNo">705</span>      Map&lt;TableName, List&lt;String&gt;&gt; tableCfs);<a name="line.705"></a>
-<span class="sourceLineNo">706</span><a name="line.706"></a>
-<span class="sourceLineNo">707</span>  /**<a name="line.707"></a>
-<span class="sourceLineNo">708</span>   * Remove some table-cfs from config of the specified peer<a name="line.708"></a>
-<span class="sourceLineNo">709</span>   * @param peerId a short name that identifies the cluster<a name="line.709"></a>
-<span class="sourceLineNo">710</span>   * @param tableCfs A map from tableName to column family names<a name="line.710"></a>
-<span class="sourceLineNo">711</span>   */<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  CompletableFuture&lt;Void&gt; removeReplicationPeerTableCFs(String peerId,<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      Map&lt;TableName, List&lt;String&gt;&gt; tableCfs);<a name="line.713"></a>
-<span class="sourceLineNo">714</span><a name="line.714"></a>
-<span class="sourceLineNo">715</span>  /**<a name="line.715"></a>
-<span class="sourceLineNo">716</span>   * Return a list of replication peers.<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * @return a list of replication peers description. The return value will be wrapped by a<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   *         {@link CompletableFuture}.<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   */<a name="line.719"></a>
-<span class="sourceLineNo">720</span>  CompletableFuture&lt;List&lt;ReplicationPeerDescription&gt;&gt; listReplicationPeers();<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>  /**<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   * Return a list of replication peers.<a name="line.723"></a>
-<span class="sourceLineNo">724</span>   * @param pattern The compiled regular expression to match peer id<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * @return a list of replication peers description. The return value will be wrapped by a<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   *         {@link CompletableFuture}.<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  CompletableFuture&lt;List&lt;ReplicationPeerDescription&gt;&gt; listReplicationPeers(Pattern pattern);<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>  /**<a name="line.730"></a>
-<span class="sourceLineNo">731</span>   * Find all table and column families that are replicated from this cluster<a name="line.731"></a>
-<span class="sourceLineNo">732</span>   * @return the replicated table-cfs list of this cluster. The return value will be wrapped by a<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   *         {@link CompletableFuture}.<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   */<a name="line.734"></a>
-<span class="sourceLineNo">735</span>  CompletableFuture&lt;List&lt;TableCFs&gt;&gt; listReplicatedTableCFs();<a name="line.735"></a>
-<span class="sourceLineNo">736</span><a name="line.736"></a>
-<span class="sourceLineNo">737</span>  /**<a name="line.737"></a>
-<span class="sourceLineNo">738</span>   * Enable a table's replication switch.<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   * @param tableName name of the table<a name="line.739"></a>
-<span class="sourceLineNo">740</span>   */<a name="line.740"></a>
-<span class="sourceLineNo">741</span>  CompletableFuture&lt;Void&gt; enableTableReplication(TableName tableName);<a name="line.741"></a>
-<span class="sourceLineNo">742</span><a name="line.742"></a>
-<span class="sourceLineNo">743</span>  /**<a name="line.743"></a>
-<span class="sourceLineNo">744</span>   * Disable a table's replication switch.<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * @param tableName name of the table<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   */<a name="line.746"></a>
-<span class="sourceLineNo">747</span>  CompletableFuture&lt;Void&gt; disableTableReplication(TableName tableName);<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>  /**<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   * Take a snapshot for the given table. If the table is enabled, a FLUSH-type snapshot will be<a name="line.750"></a>
-<span class="sourceLineNo">751</span>   * taken. If the table is disabled, an offline snapshot is taken. Snapshots are taken<a name="line.751"></a>
-<span class="sourceLineNo">752</span>   * sequentially even when requested concurrently, across all tables. Snapshots are considered<a name="line.752"></a>
-<span class="sourceLineNo">753</span>   * unique based on &lt;b&gt;the name of the snapshot&lt;/b&gt;. Attempts to take a snapshot with the same<a name="line.753"></a>
-<span class="sourceLineNo">754</span>   * name (even a different type or with different parameters) will fail with a<a name="line.754"></a>
-<span class="sourceLineNo">755</span>   * {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException} indicating the duplicate<a name="line.755"></a>
-<span class="sourceLineNo">756</span>   * naming. Snapshot names follow the same naming constraints as tables in HBase. See<a name="line.756"></a>
-<span class="sourceLineNo">757</span>   * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.757"></a>
-<span class="sourceLineNo">758</span>   * @param snapshotName name of the snapshot to be created<a name="line.758"></a>
-<span class="sourceLineNo">759</span>   * @param tableName name of the table for which snapshot is created<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   */<a name="line.760"></a>
-<span class="sourceLineNo">761</span>  default CompletableFuture&lt;Void&gt; snapshot(String snapshotName, TableName tableName) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>    return snapshot(snapshotName, tableName, SnapshotType.FLUSH);<a name="line.762"></a>
-<span class="sourceLineNo">763</span>  }<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>  /**<a name="line.765"></a>
-<span class="sourceLineNo">766</span>   * Create typed snapshot of the table. Snapshots are considered unique based on &lt;b&gt;the name of the<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * snapshot&lt;/b&gt;. Snapshots are taken sequentially even when requested concurrently, across all<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   * tables. Attempts to take a snapshot with the same name (even a different type or with<a name="line.768"></a>
-<span class="sourceLineNo">769</span>   * different parameters) will fail with a<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException} indicating the duplicate<a name="line.770"></a>
-<span class="sourceLineNo">771</span>   * naming. Snapshot names follow the same naming constraints as tables in HBase. See<a name="line.771"></a>
-<span class="sourceLineNo">772</span>   * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   * @param snapshotName name to give the snapshot on the filesystem. Must be unique from all other<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   *          snapshots stored on the cluster<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * @param tableName name of the table to snapshot<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * @param type type of snapshot to take<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   */<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  default CompletableFuture&lt;Void&gt; snapshot(String snapshotName, TableName tableName,<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      SnapshotType type) {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    return snapshot(new SnapshotDescription(snapshotName, tableName, type));<a name="line.780"></a>
-<span class="sourceLineNo">781</span>  }<a name="line.781"></a>
-<span class="sourceLineNo">782</span><a name="line.782"></a>
-<span class="sourceLineNo">783</span>  /**<a name="line.783"></a>
-<span class="sourceLineNo">784</span>   * Take a snapshot and wait for the server to complete that snapshot asynchronously. Snapshots<a name="line.784"></a>
-<span class="sourceLineNo">785</span>   * are taken sequentially even when requested concurrently, across all tables. Snapshots are<a name="line.785"></a>
-<span class="sourceLineNo">786</span>   * considered unique based on &lt;b&gt;the name of the snapshot&lt;/b&gt;.<a name="line.786"></a>
-<span class="sourceLineNo">787</span>   * Attempts to take a snapshot with the same name (even a different type or with different<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   * parameters) will fail with a {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException}<a name="line.788"></a>
-<span class="sourceLineNo">789</span>   * indicating the duplicate naming. Snapshot names follow the same naming constraints as tables in<a name="line.789"></a>
-<span class="sourceLineNo">790</span>   * HBase. See {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.790"></a>
-<span class="sourceLineNo">791</span>   * You should probably use {@link #snapshot(String, org.apache.hadoop.hbase.TableName)} unless you<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * are sure about the type of snapshot that you want to take.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>   * @param snapshot snapshot to take<a name="line.793"></a>
-<span class="sourceLineNo">794</span>   */<a name="line.794"></a>
-<span class="sourceLineNo">795</span>  CompletableFuture&lt;Void&gt; snapshot(SnapshotDescription snapshot);<a name="line.795"></a>
-<span class="sourceLineNo">796</span><a name="line.796"></a>
-<span class="sourceLineNo">797</span>  /**<a name="line.797"></a>
-<span class="sourceLineNo">798</span>   * Check the current state of the passed snapshot. There are three possible states:<a name="line.798"></a>
-<span class="sourceLineNo">799</span>   * &lt;ol&gt;<a name="line.799"></a>
-<span class="sourceLineNo">800</span>   * &lt;li&gt;running - returns &lt;tt&gt;false&lt;/tt&gt;&lt;/li&gt;<a name="line.800"></a>
-<span class="sourceLineNo">801</span>   * &lt;li&gt;finished - returns &lt;tt&gt;true&lt;/tt&gt;&lt;/li&gt;<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * &lt;li&gt;finished with error - throws the exception that caused the snapshot to fail&lt;/li&gt;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   * &lt;/ol&gt;<a name="line.803"></a>
-<span class="sourceLineNo">804</span>   * The cluster only knows about the most recent snapshot. Therefore, if another snapshot has been<a name="line.804"></a>
-<span class="sourceLineNo">805</span>   * run/started since the snapshot you are checking, you will receive an<a name="line.805"></a>
-<span class="sourceLineNo">806</span>   * {@link org.apache.hadoop.hbase.snapshot.UnknownSnapshotException}.<a name="line.806"></a>
-<span class="sourceLineNo">807</span>   * @param snapshot description of the snapshot to check<a name="line.807"></a>
-<span class="sourceLineNo">808</span>   * @return &lt;tt&gt;true&lt;/tt&gt; if the snapshot is completed, &lt;tt&gt;false&lt;/tt&gt; if the snapshot is still<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   *         running<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   */<a name="line.810"></a>
-<span class="sourceLineNo">811</span>  CompletableFuture&lt;Boolean&gt; isSnapshotFinished(SnapshotDescription snapshot);<a name="line.811"></a>
-<span class="sourceLineNo">812</span><a name="line.812"></a>
-<span class="sourceLineNo">813</span>  /**<a name="line.813"></a>
-<span class="sourceLineNo">814</span>   * Restore the specified snapshot on the original table. (The table must be disabled) If the<a name="line.814"></a>
-<span class="sourceLineNo">815</span>   * "hbase.snapshot.restore.take.failsafe.snapshot" configuration property is set to true, a<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * snapshot of the current table is taken before executing the restore operation. In case of<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * restore failure, the failsafe snapshot will be restored. If the restore completes without<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   * problem the failsafe snapshot is deleted.<a name="line.818"></a>
-<span class="sourceLineNo">819</span>   * @param snapshotName name of the snapshot to restore<a name="line.819"></a>
-<span class="sourceLineNo">820</span>   */<a name="line.820"></a>
-<span class="sourceLineNo">821</span>  CompletableFuture&lt;Void&gt; restoreSnapshot(String snapshotName);<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>  /**<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * Restore the specified snapshot on the original table. (The table must be disabled) If<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * 'takeFailSafeSnapshot' is set to true, a snapshot of the current table is taken before<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * executing the restore operation. In case of restore failure, the failsafe snapshot will be<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * restored. If the restore completes without problem the failsafe snapshot is deleted. The<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * failsafe snapshot name is configurable by using the property<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * "hbase.snapshot.restore.failsafe.name".<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   * @param snapshotName name of the snapshot to restore<a name="line.830"></a>
-<span class="sourceLineNo">831</span>   * @param takeFailSafeSnapshot true if the failsafe snapshot should be taken<a name="line.831"></a>
-<span class="sourceLineNo">832</span>   */<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  default CompletableFuture&lt;Void&gt; restoreSnapshot(String snapshotName,<a name="line.833"></a>
-<span class="sourceLineNo">834</span>      boolean takeFailSafeSnapshot) {<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    return restoreSnapshot(snapshotName, takeFailSafeSnapshot, false);<a name="line.835"></a>
-<span class="sourceLineNo">836</span>  }<a name="line.836"></a>
-<span class="sourceLineNo">837</span><a name="line.837"></a>
-<span class="sourceLineNo">838</span>  /**<a name="line.838"></a>
-<span class="sourceLineNo">839</span>   * Restore the specified snapshot on the original table. (The table must be disabled) If<a name="line.839"></a>
-<span class="sourceLineNo">840</span>   * 'takeFailSafeSnapshot' is set to true, a snapshot of the current table is taken before<a name="line.840"></a>
-<span class="sourceLineNo">841</span>   * executing the restore operation. In case of restore failure, the failsafe snapshot will be<a name="line.841"></a>
-<span class="sourceLineNo">842</span>   * restored. If the restore completes without problem the failsafe snapshot is deleted. The<a name="line.842"></a>
-<span class="sourceLineNo">843</span>   * failsafe snapshot name is configurable by using the property<a name="line.843"></a>
-<span class="sourceLineNo">844</span>   * "hbase.snapshot.restore.failsafe.name".<a name="line.844"></a>
-<span class="sourceLineNo">845</span>   * @param snapshotName name of the snapshot to restore<a name="line.845"></a>
-<span class="sourceLineNo">846</span>   * @param takeFailSafeSnapshot true if the failsafe snapshot should be taken<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * @param restoreAcl &lt;code&gt;true&lt;/code&gt; to restore acl of snapshot<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   */<a name="line.848"></a>
-<span class="sourceLineNo">849</span>  CompletableFuture&lt;Void&gt; restoreSnapshot(String snapshotName, boolean takeFailSafeSnapshot,<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      boolean restoreAcl);<a name="line.850"></a>
-<span class="sourceLineNo">851</span><a name="line.851"></a>
-<span class="sourceLineNo">852</span>  /**<a name="line.852"></a>
-<span class="sourceLineNo">853</span>   * Create a new table by cloning the snapshot content.<a name="line.853"></a>
-<span class="sourceLineNo">854</span>   * @param snapshotName name of the snapshot to be cloned<a name="line.854"></a>
-<span class="sourceLineNo">855</span>   * @param tableName name of the table where the snapshot will be restored<a name="line.855"></a>
-<span class="sourceLineNo">856</span>   */<a name="line.856"></a>
-<span class="sourceLineNo">857</span>  default CompletableFuture&lt;Void&gt; cloneSnapshot(String snapshotName, TableName tableName) {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    return cloneSnapshot(snapshotName, tableName, false);<a name="line.858"></a>
-<span class="sourceLineNo">859</span>  }<a name="line.859"></a>
-<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span>  /**<a name="line.861"></a>
-<span class="sourceLineNo">862</span>   * Create a new table by cloning the snapshot content.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>   * @param snapshotName name of the snapshot to be cloned<a name="line.863"></a>
-<span class="sourceLineNo">864</span>   * @param tableName name of the table where the snapshot will be restored<a name="line.864"></a>
-<span class="sourceLineNo">865</span>   * @param restoreAcl &lt;code&gt;true&lt;/code&gt; to restore acl of snapshot<a name="line.865"></a>
-<span class="sourceLineNo">866</span>   */<a name="line.866"></a>
-<span class="sourceLineNo">867</span>  CompletableFuture&lt;Void&gt; cloneSnapshot(String snapshotName, TableName tableName,<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      boolean restoreAcl);<a name="line.868"></a>
-<span class="sourceLineNo">869</span><a name="line.869"></a>
-<span class="sourceLineNo">870</span>  /**<a name="line.870"></a>
-<span class="sourceLineNo">871</span>   * List completed snapshots.<a name="line.871"></a>
-<span class="sourceLineNo">872</span>   * @return a list of snapshot descriptors for completed snapshots wrapped by a<a name="line.872"></a>
-<span class="sourceLineNo">873</span>   *         {@link CompletableFuture}<a name="line.873"></a>
-<span class="sourceLineNo">874</span>   */<a name="line.874"></a>
-<span class="sourceLineNo">875</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listSnapshots();<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>  /**<a name="line.877"></a>
-<span class="sourceLineNo">878</span>   * List all the completed snapshots matching the given pattern.<a name="line.878"></a>
-<span class="sourceLineNo">879</span>   * @param pattern The compiled regular expression to match against<a name="line.879"></a>
-<span class="sourceLineNo">880</span>   * @return - returns a List of SnapshotDescription wrapped by a {@link CompletableFuture}<a name="line.880"></a>
-<span class="sourceLineNo">881</span>   */<a name="line.881"></a>
-<span class="sourceLineNo">882</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listSnapshots(Pattern pattern);<a name="line.882"></a>
-<span class="sourceLineNo">883</span><a name="line.883"></a>
-<span class="sourceLineNo">884</span>  /**<a name="line.884"></a>
-<span class="sourceLineNo">885</span>   * List all the completed snapshots matching the given table name pattern.<a name="line.885"></a>
-<span class="sourceLineNo">886</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.886"></a>
-<span class="sourceLineNo">887</span>   * @return - returns a List of completed SnapshotDescription wrapped by a<a name="line.887"></a>
-<span class="sourceLineNo">888</span>   *         {@link CompletableFuture}<a name="line.888"></a>
-<span class="sourceLineNo">889</span>   */<a name="line.889"></a>
-<span class="sourceLineNo">890</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listTableSnapshots(Pattern tableNamePattern);<a name="line.890"></a>
-<span class="sourceLineNo">891</span><a name="line.891"></a>
-<span class="sourceLineNo">892</span>  /**<a name="line.892"></a>
-<span class="sourceLineNo">893</span>   * List all the completed snapshots matching the given table name regular expression and snapshot<a name="line.893"></a>
-<span class="sourceLineNo">894</span>   * name regular expression.<a name="line.894"></a>
-<span class="sourceLineNo">895</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.895"></a>
-<span class="sourceLineNo">896</span>   * @param snapshotNamePattern The compiled snapshot name regular expression to match against<a name="line.896"></a>
-<span class="sourceLineNo">897</span>   * @return - returns a List of completed SnapshotDescription wrapped by a<a name="line.897"></a>
-<span class="sourceLineNo">898</span>   *         {@link CompletableFuture}<a name="line.898"></a>
-<span class="sourceLineNo">899</span>   */<a name="line.899"></a>
-<span class="sourceLineNo">900</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listTableSnapshots(Pattern tableNamePattern,<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      Pattern snapshotNamePattern);<a name="line.901"></a>
-<span class="sourceLineNo">902</span><a name="line.902"></a>
-<span class="sourceLineNo">903</span>  /**<a name="line.903"></a>
-<span class="sourceLineNo">904</span>   * Delete an existing snapshot.<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * @param snapshotName name of the snapshot<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   */<a name="line.906"></a>
-<span class="sourceLineNo">907</span>  CompletableFuture&lt;Void&gt; deleteSnapshot(String snapshotName);<a name="line.907"></a>
-<span class="sourceLineNo">908</span><a name="line.908"></a>
-<span class="sourceLineNo">909</span>  /**<a name="line.909"></a>
-<span class="sourceLineNo">910</span>   * Delete all existing snapshots.<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   */<a name="line.911"></a>
-<span class="sourceLineNo">912</span>  CompletableFuture&lt;Void&gt; deleteSnapshots();<a name="line.912"></a>
-<span class="sourceLineNo">913</span><a name="line.913"></a>
-<span class="sourceLineNo">914</span>  /**<a name="line.914"></a>
-<span class="sourceLineNo">915</span>   * Delete existing snapshots whose names match the pattern passed.<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   * @param pattern pattern for names of the snapshot to match<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   */<a name="line.917"></a>
-<span class="sourceLineNo">918</span>  CompletableFuture&lt;Void&gt; deleteSnapshots(Pattern pattern);<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>  /**<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   * Delete all existing snapshots matching the given table name pattern.<a name="line.921"></a>
-<span class="sourceLineNo">922</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.922"></a>
-<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
-<span class="sourceLineNo">924</span>  CompletableFuture&lt;Void&gt; deleteTableSnapshots(Pattern tableNamePattern);<a name="line.924"></a>
-<span class="sourceLineNo">925</span><a name="line.925"></a>
-<span class="sourceLineNo">926</span>  /**<a name="line.926"></a>
-<span class="sourceLineNo">927</span>   * Delete all existing snapshots matching the given table name regular expression and snapshot<a name="line.927"></a>
-<span class="sourceLineNo">928</span>   * name regular expression.<a name="line.928"></a>
-<span class="sourceLineNo">929</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.929"></a>
-<span class="sourceLineNo">930</span>   * @param snapshotNamePattern The compiled snapshot name regular expression to match against<a name="line.930"></a>
-<span class="sourceLineNo">931</span>   */<a name="line.931"></a>
-<span class="sourceLineNo">932</span>  CompletableFuture&lt;Void&gt; deleteTableSnapshots(Pattern tableNamePattern,<a name="line.932"></a>
-<span class="sourceLineNo">933</span>      Pattern snapshotNamePattern);<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>  /**<a name="line.935"></a>
-<span class="sourceLineNo">936</span>   * Execute a distributed procedure on a cluster.<a name="line.936"></a>
-<span class="sourceLineNo">937</span>   * @param signature A distributed procedure is uniquely identified by its signature (default the<a name="line.937"></a>
-<span class="sourceLineNo">938</span>   *          root ZK node name of the procedure).<a name="line.938"></a>
-<span class="sourceLineNo">939</span>   * @param instance The instance name of the procedure. For some procedures, this parameter is<a name="line.939"></a>
-<span class="sourceLineNo">940</span>   *          optional.<a name="line.940"></a>
-<span class="sourceLineNo">941</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.941"></a>
-<span class="sourceLineNo">942</span>   */<a name="line.942"></a>
-<span class="sourceLineNo">943</span>  CompletableFuture&lt;Void&gt; execProcedure(String signature, String instance,<a name="line.943"></a>
-<span class="sourceLineNo">944</span>      Map&lt;String, String&gt; props);<a name="line.944"></a>
-<span class="sourceLineNo">945</span><a name="line.945"></a>
-<span class="sourceLineNo">946</span>  /**<a name="line.946"></a>
-<span class="sourceLineNo">947</span>   * Execute a distributed procedure on a cluster.<a name="line.947"></a>
-<span class="sourceLineNo">948</span>   * @param signature A distributed procedure is uniquely identified by its signature (default the<a name="line.948"></a>
-<span class="sourceLineNo">949</span>   *          root ZK node name of the procedure).<a name="line.949"></a>
-<span class="sourceLineNo">950</span>   * @param instance The instance name of the procedure. For some procedures, this parameter is<a name="line.950"></a>
-<span class="sourceLineNo">951</span>   *          optional.<a name="line.951"></a>
-<span class="sourceLineNo">952</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.952"></a>
-<span class="sourceLineNo">953</span>   * @return data returned after procedure execution. null if no return data.<a name="line.953"></a>
-<span class="sourceLineNo">954</span>   */<a name="line.954"></a>
-<span class="sourceLineNo">955</span>  CompletableFuture&lt;byte[]&gt; execProcedureWithReturn(String signature, String instance,<a name="line.955"></a>
-<span class="sourceLineNo">956</span>      Map&lt;String, String&gt; props);<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>  /**<a name="line.958"></a>
-<span class="sourceLineNo">959</span>   * Check the current state of the specified procedure. There are three possible states:<a name="line.959"></a>
-<span class="sourceLineNo">960</span>   * &lt;ol&gt;<a name="line.960"></a>
-<span class="sourceLineNo">961</span>   * &lt;li&gt;running - returns &lt;tt&gt;false&lt;/tt&gt;&lt;/li&gt;<a name="line.961"></a>
-<span class="sourceLineNo">962</span>   * &lt;li&gt;finished - returns &lt;tt&gt;true&lt;/tt&gt;&lt;/li&gt;<a name="line.962"></a>
-<span class="sourceLineNo">963</span>   * &lt;li&gt;finished with error - throws the exception that caused the procedure to fail&lt;/li&gt;<a name="line.963"></a>
-<span class="sourceLineNo">964</span>   * &lt;/ol&gt;<a name="line.964"></a>
-<span class="sourceLineNo">965</span>   * @param signature The signature that uniquely identifies a procedure<a name="line.965"></a>
-<span class="sourceLineNo">966</span>   * @param instance The instance name of the procedure<a name="line.966"></a>
-<span class="sourceLineNo">967</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.967"></a>
-<span class="sourceLineNo">968</span>   * @return true if the specified procedure is finished successfully, false if it is still running.<a name="line.968"></a>
-<span class="sourceLineNo">969</span>   *         The value is wrapped by {@link CompletableFuture}<a name="line.969"></a>
-<span class="sourceLineNo">970</span>   */<a name="line.970"></a>
-<span class="sourceLineNo">971</span>  CompletableFuture&lt;Boolean&gt; isProcedureFinished(String signature, String instance,<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      Map&lt;String, String&gt; props);<a name="line.972"></a>
-<span class="sourceLineNo">973</span><a name="line.973"></a>
-<span class="sourceLineNo">974</span>  /**<a name="line.974"></a>
-<span class="sourceLineNo">975</span>   * Abort a procedure<a name="line.975"></a>
-<span class="sourceLineNo">976</span>   * Do not use. Usually it is ignored but if not, it can do more damage than good. See hbck2.<a name="line.976"></a>
-<span class="sourceLineNo">977</span>   * @param procId ID of the procedure to abort<a name="line.977"></a>
-<span class="sourceLineNo">978</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.978"></a>
-<span class="sourceLineNo">979</span>   * @return true if aborted, false if procedure already completed or does not exist. the value is<a name="line.979"></a>
-<span class="sourceLineNo">980</span>   *         wrapped by {@link CompletableFuture}<a name="line.980"></a>
-<span class="sourceLineNo">981</span>   * @deprecated since 2.1.1 and will be removed in 4.0.0.<a name="line.981"></a>
-<span class="sourceLineNo">982</span>   * @see &lt;a href="https://issues.apache.org/jira/browse/HBASE-21223"&gt;HBASE-21223&lt;/a&gt;<a name="line.982"></a>
-<span class="sourceLineNo">983</span>   */<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  @Deprecated<a name="line.984"></a>
-<span class="sourceLineNo">985</span>  CompletableFuture&lt;Boolean&gt; abortProcedure(long procId, boolean mayInterruptIfRunning);<a name="line.985"></a>
-<span class="sourceLineNo">986</span><a name="line.986"></a>
-<span class="sourceLineNo">987</span>  /**<a name="line.987"></a>
-<span class="sourceLineNo">988</span>   * List procedures<a name="line.988"></a>
-<span class="sourceLineNo">989</span>   * @return procedure list JSON wrapped by {@link CompletableFuture}<a name="line.989"></a>
-<span class="sourceLineNo">990</span>   */<a name="line.990"></a>
-<span class="sourceLineNo">991</span>  CompletableFuture&lt;String&gt; getProcedures();<a name="line.991"></a>
-<span class="sourceLineNo">992</span><a name="line.992"></a>
-<span class="sourceLineNo">993</span>  /**<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   * List locks.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>   * @return lock list JSON wrapped by {@link CompletableFuture}<a name="line.995"></a>
-<span class="sourceLineNo">996</span>   */<a name="line.996"></a>
-<span class="sourceLineNo">997</span>  CompletableFuture&lt;String&gt; getLocks();<a name="line.997"></a>
-<span class="sourceLineNo">998</span><a name="line.998"></a>
-<span class="sourceLineNo">999</span>  /**<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>   * Mark region server(s) as decommissioned to prevent additional regions from getting<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>   * assigned to them. Optionally unload the regions on the servers. If there are multiple servers<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>   * to be decommissioned, decommissioning them at the same time can prevent wasteful region<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>   * movements. Region unloading is asynchronous.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>   * @param servers The list of servers to decommission.<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>   * @param offload True to offload the regions from the decommissioned servers<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>   */<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>  CompletableFuture&lt;Void&gt; decommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload);<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span><a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>  /**<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>   * List region servers marked as decommissioned, which can not be assigned regions.<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * @return List of decommissioned region servers wrapped by {@link CompletableFuture}<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   */<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>  CompletableFuture&lt;List&lt;ServerName&gt;&gt; listDecommissionedRegionServers();<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span><a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>  /**<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>   * Remove decommission marker from a region server to allow regions assignments. Load regions onto<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   * the server if a list of regions is given. Region loading is asynchronous.<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>   * @param server The server to recommission.<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>   * @param encodedRegionNames Regions to load onto the server.<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   */<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>  CompletableFuture&lt;Void&gt; recommissionRegionServer(ServerName server,<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      List&lt;byte[]&gt; encodedRegionNames);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span><a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  /**<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   * @return cluster status wrapped by {@link CompletableFuture}<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>   */<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  CompletableFuture&lt;ClusterMetrics&gt; getClusterMetrics();<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span><a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>  /**<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>   * @return cluster status wrapped by {@link CompletableFuture}<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>   */<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>  CompletableFuture&lt;ClusterMetrics&gt; getClusterMetrics(EnumSet&lt;Option&gt; options);<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>  /**<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>   * @return current master server name wrapped by {@link CompletableFuture}<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>   */<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>  default CompletableFuture&lt;ServerName&gt; getMaster() {<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>    return getClusterMetrics(EnumSet.of(Option.MASTER)).thenApply(ClusterMetrics::getMasterName);<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>  }<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span><a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>  /**<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>   * @return current backup master list wrapped by {@link CompletableFuture}<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>   */<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>  default CompletableFuture&lt;Collection&lt;ServerName&gt;&gt; getBackupMasters() {<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>    return getClusterMetrics(EnumSet.of(Option.BACKUP_MASTERS))<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>      .thenApply(ClusterMetrics::getBackupMasterNames);<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>  }<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span><a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  /**<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>   * @return current live region servers list wrapped by {@link CompletableFuture}<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>   */<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>  default CompletableFuture&lt;Collection&lt;ServerName&gt;&gt; getRegionServers() {<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    return getClusterMetrics(EnumSet.of(Option.SERVERS_NAME))<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>        .thenApply(ClusterMetrics::getServersName);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>  }<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span><a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>  /**<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span>   * @return a list of master coprocessors wrapped by {@link CompletableFuture}<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>   */<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>  default CompletableFuture&lt;List&lt;String&gt;&gt; getMasterCoprocessorNames() {<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>    return getClusterMetrics(EnumSet.of(Option.MASTER_COPROCESSORS))<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>        .thenApply(ClusterMetrics::getMasterCoprocessorNames);<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span>  }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span><a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>  /**<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>   * Get the info port of the current master if one is available.<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>   * @return master info port<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>   */<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>  default CompletableFuture&lt;Integer&gt; getMasterInfoPort() {<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>    return getClusterMetrics(EnumSet.of(Option.MASTER_INFO_PORT)).thenApply(<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      ClusterMetrics::getMasterInfoPort);<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>  }<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span><a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>  /**<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>   * Shuts down the HBase cluster.<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>   */<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>  CompletableFuture&lt;Void&gt; shutdown();<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span><a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>  /**<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>   * Shuts down the current HBase master only.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>   */<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>  CompletableFuture&lt;Void&gt; stopMaster();<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span><a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>  /**<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>   * Stop the designated regionserver.<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>   * @param serverName<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>   */<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>  CompletableFuture&lt;Void&gt; stopRegionServer(ServerName serverName);<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span><a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>  /**<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>   * Update the configuration and trigger an online config change on the regionserver.<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>   * @param serverName : The server whose config needs to be updated.<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>   */<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>  CompletableFuture&lt;Void&gt; updateConfiguration(ServerName serverName);<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span><a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>  /**<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>   * Update the configuration and trigger an online config change on all the masters and<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>   * regionservers.<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>   */<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>  CompletableFuture&lt;Void&gt; updateConfiguration();<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span><a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  /**<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span>   * Roll the log writer. I.e. for filesystem based write ahead logs, start writing to a new file.<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>   * &lt;p&gt;<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>   * When the returned CompletableFuture is done, it only means the rollWALWriter request was sent<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>   * to the region server and may need some time to finish the rollWALWriter operation. As a side<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>   * effect of this call, the named region server may schedule store flushes at the request of the<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>   * wal.<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>   * @param serverName The servername of the region server.<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>   */<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>  CompletableFuture&lt;Void&gt; rollWALWriter(ServerName serverName);<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span><a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>  /**<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>   * Clear compacting queues on a region server.<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>   * @param serverName<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>   * @param queues the set of queue name<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>   */<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>  CompletableFuture&lt;Void&gt; clearCompactionQueues(ServerName serverName, Set&lt;String&gt; queues);<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span><a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>  /**<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * Get a list of {@link RegionMetrics} of all regions hosted on a region seerver.<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   * @param serverName<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   * @return a list of {@link RegionMetrics} wrapped by {@link CompletableFuture}<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>   */<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>  CompletableFuture&lt;List&lt;RegionMetrics&gt;&gt; getRegionMetrics(ServerName serverName);<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span><a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>  /**<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>   * Get a list of {@link RegionMetrics} of all regions hosted on a region seerver for a table.<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @param serverName<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param tableName<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   * @return a list of {@link RegionMetrics} wrapped by {@link CompletableFuture}<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>   */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>  CompletableFuture&lt;List&lt;RegionMetrics&gt;&gt; getRegionMetrics(ServerName serverName,<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    TableName tableName);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span><a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>  /**<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>   * Check whether master is in maintenance mode<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>   * @return true if master is in maintenance mode, false otherwise. The return value will be<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>   *         wrapped by a {@link CompletableFuture}<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>   */<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>  CompletableFuture&lt;Boolean&gt; isMasterInMaintenanceMode();<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  /**<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   * Get the current compaction state of a table. It could be in a major compaction, a minor<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>   * compaction, both, or none.<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>   * @param tableName table to examine<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>   * @return the current compaction state wrapped by a {@link CompletableFuture}<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>   */<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>  default CompletableFuture&lt;CompactionState&gt; getCompactionState(TableName tableName) {<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>    return getCompactionState(tableName, CompactType.NORMAL);<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  }<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span><a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>  /**<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * Get the current compaction state of a table. It could be in a major compaction, a minor<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   * compaction, both, or none.<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>   * @param tableName table to examine<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>   * @param compactType {@link org.apache.hadoop.hbase.client.CompactType}<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span>   * @return the current compaction state wrapped by a {@link CompletableFuture}<a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>   */<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>  CompletableFuture&lt;CompactionState&gt; getCompactionState(TableName tableName,<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>      CompactType compactType);<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span><a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>  /**<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>   * Get the current compaction state of region. It could be in a major compaction, a minor<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>   * compaction, both, or none.<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   * @param regionName region to examine<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>   * @return the current compaction state wrapped by a {@link CompletableFuture}<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   */<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>  CompletableFuture&lt;CompactionState&gt; getCompactionStateForRegion(byte[] regionName);<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span><a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>  /**<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>   * Get the timestamp of the last major compaction for the passed table.<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>   * &lt;p&gt;<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>   * The timestamp of the oldest HFile resulting from a major compaction of that table, or not<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>   * present if no such HFile could be found.<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>   * @param tableName table to examine<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>   * @return the last major compaction timestamp wrapped by a {@link CompletableFuture}<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>   */<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>  CompletableFuture&lt;Optional&lt;Long&gt;&gt; getLastMajorCompactionTimestamp(TableName tableName);<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span><a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>  /**<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>   * Get the timestamp of the last major compaction for the passed region.<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>   * &lt;p&gt;<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * The timestamp of the oldest HFile resulting from a major compaction of that region, or not<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * present if no such HFile could be found.<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   * @param regionName region to examine<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>   * @return the last major compaction timestamp wrapped by a {@link CompletableFuture}<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>   */<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>  CompletableFuture&lt;Optional&lt;Long&gt;&gt; getLastMajorCompactionTimestampForRegion(byte[] regionName);<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span><a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>  /**<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>   * @return the list of supported security capabilities. The return value will be wrapped by a<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   *         {@link CompletableFuture}.<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   */<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>  CompletableFuture&lt;List&lt;SecurityCapability&gt;&gt; getSecurityCapabilities();<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span><a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>  /**<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>   * Turn the load balancer on or off.<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>   * @param on Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>   * @return Previous balancer value wrapped by a {@link CompletableFuture}.<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>   */<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>  default CompletableFuture&lt;Boolean&gt; balancerSwitch(boolean on) {<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>    return balancerSwitch(on, false);<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>  }<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span><a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>  /**<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>   * Turn the load balancer on or off.<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>   * &lt;p/&gt;<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>   * Notice that, the method itself is always non-blocking, which means it will always return<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * immediately. The {@code drainRITs} parameter only effects when will we complete the returned<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * {@link CompletableFuture}.<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   * @param on Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>   * @param drainRITs If &lt;code&gt;true&lt;/code&gt;, it waits until current balance() call, if outstanding,<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>   *          to return.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>   * @return Previous balancer value wrapped by a {@link CompletableFuture}.<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>   */<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  CompletableFuture&lt;Boolean&gt; balancerSwitch(boolean on, boolean drainRITs);<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span><a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>  /**<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>   * Invoke the balancer. Will run the balancer and if regions to move, it will go ahead and do the<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>   * reassignments. Can NOT run for various reasons. Check logs.<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>   * @return True if balancer ran, false otherwise. The return value will be wrapped by a<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>   *         {@link CompletableFuture}.<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>   */<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>  default CompletableFuture&lt;Boolean&gt; balance() {<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>    return balance(false);<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  }<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span><a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>  /**<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>   * Invoke the balancer. Will run the balancer and if regions to move, it will go ahead and do the<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>   * reassignments. If there is region in transition, force parameter of true would still run<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>   * balancer. Can *not* run for other reasons. Check logs.<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>   * @param forcible whether we should force balance even if there is region in transition.<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>   * @return True if balancer ran, false otherwise. The return value will be wrapped by a<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>   *         {@link CompletableFuture}.<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>   */<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>  CompletableFuture&lt;Boolean&gt; balance(boolean forcible);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span><a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>  /**<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>   * Query the current state of the balancer.<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>   * @return true if the balance switch is on, false otherwise. The return value will be wrapped by a<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>   *         {@link CompletableFuture}.<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>   */<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>  CompletableFuture&lt;Boolean&gt; isBalancerEnabled();<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span><a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>  /**<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>   * Set region normalizer on/off.<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>   * @param on whether normalizer should be on or off<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>   * @return Previous normalizer value wrapped by a {@link CompletableFuture}<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>   */<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>  CompletableFuture&lt;Boolean&gt; normalizerSwitch(boolean on);<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span><a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>  /**<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>   * Query the current state of the region normalizer<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>   * @return true if region normalizer is on, false otherwise. The return value will be wrapped by a<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>   *         {@link CompletableFuture}<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>   */<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  CompletableFuture&lt;Boolean&gt; isNormalizerEnabled();<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span><a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  /**<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>   * Invoke region normalizer. Can NOT run for various reasons. Check logs.<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>   * @return true if region normalizer ran, false otherwise. The return value will be wrapped by a<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>   *         {@link CompletableFuture}<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>   */<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span>  CompletableFuture&lt;Boolean&gt; normalize();<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span><a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>  /**<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>   * Turn the cleaner chore on/off.<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span>   * @param on<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>   * @return Previous cleaner state wrapped by a {@link CompletableFuture}<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>   */<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>  CompletableFuture&lt;Boolean&gt; cleanerChoreSwitch(boolean on);<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span><a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>  /**<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span>   * Query the current state of the cleaner chore.<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>   * @return true if cleaner chore is on, false otherwise. The return value will be wrapped by<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>   *         a {@link CompletableFuture}<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>   */<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>  CompletableFuture&lt;Boolean&gt; isCleanerChoreEnabled();<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span><a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>  /**<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>   * Ask for cleaner chore to run.<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>   * @return true if cleaner chore ran, false otherwise. The return value will be wrapped by a<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>   *         {@link CompletableFuture}<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>   */<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>  CompletableFuture&lt;Boolean&gt; runCleanerChore();<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span><a name="line.1287"></a>
-<span class="sourceLineNo">1288</span>  /**<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>   * Turn the catalog janitor on/off.<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>   * @param on<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>   * @return the previous state wrapped by a {@link CompletableFuture}<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>   */<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span>  CompletableFuture&lt;Boolean&gt; catalogJanitorSwitch(boolean on);<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span><a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  /**<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>   * Query on the catalog janitor state.<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>   * @return true if the catalog janitor is on, false otherwise. The return value will be<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>   *         wrapped by a {@link CompletableFuture}<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>   */<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  CompletableFuture&lt;Boolean&gt; isCatalogJanitorEnabled();<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span><a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  /**<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>   * Ask for a scan of the catalog table.<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>   * @return the number of entries cleaned. The return value will be wrapped by a<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>   *         {@link CompletableFuture}<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>   */<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  CompletableFuture&lt;Integer&gt; runCatalogJanitor();<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span><a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>  /**<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   * Execute the given coprocessor call on the master.<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   * &lt;p&gt;<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   * The {@code stubMaker} is just a delegation to the {@code newStub} call. Usually it is only a<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   * one line lambda expression, like:<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>   *<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>   * &lt;pre&gt;<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>   * &lt;code&gt;<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>   * channel -&gt; xxxService.newStub(channel)<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>   * &lt;/code&gt;<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>   * &lt;/pre&gt;<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>   * @param stubMaker a delegation to the actual {@code newStub} call.<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>   * @param callable a delegation to the actual protobuf rpc call. See the comment of<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>   *          {@link ServiceCaller} for more details.<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>   * @param &lt;S&gt; the type of the asynchronous stub<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>   * @param &lt;R&gt; the type of the return value<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>   * @return the return value of the protobuf rpc call, wrapped by a {@link CompletableFuture}.<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>   * @see ServiceCaller<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>   */<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>  &lt;S, R&gt; CompletableFuture&lt;R&gt; coprocessorService(Function&lt;RpcChannel, S&gt; stubMaker,<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>      ServiceCaller&lt;S, R&gt; callable);<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span><a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>  /**<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>   * Execute the given coprocessor call on the given region server.<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>   * &lt;p&gt;<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>   * The {@code stubMaker} is just a delegation to the {@code newStub} call. Usually it is only a<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>   * one line lambda expression, like:<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>   *<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>   * &lt;pre&gt;<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>   * &lt;code&gt;<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>   * channel -&gt; xxxService.newStub(channel)<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>   * &lt;/code&gt;<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>   * &lt;/pre&gt;<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>   * @param stubMaker a delegation to the actual {@code newStub} call.<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>   * @param callable a delegation to the actual protobuf rpc call. See the comment of<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>   *          {@link ServiceCaller} for more details.<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>   * @param serverName the given region server<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>   * @param &lt;S&gt; the type of the asynchronous stub<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>   * @param &lt;R&gt; the type of the return value<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>   * @return the return value of the protobuf rpc call, wrapped by a {@link CompletableFuture}.<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span>   * @see ServiceCaller<a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>   */<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>  &lt;S, R&gt; CompletableFuture&lt;R&gt; coprocessorService(Function&lt;RpcChannel, S&gt; stubMaker,<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>    ServiceCaller&lt;S, R&gt; callable, ServerName serverName);<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span><a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>  /**<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>   * List all the dead region servers.<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>   */<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>  default CompletableFuture&lt;List&lt;ServerName&gt;&gt; listDeadServers() {<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span>    return this.getClusterMetrics(EnumSet.of(Option.DEAD_SERVERS))<a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>        .thenApply(ClusterMetrics::getDeadServerNames);<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>  }<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span><a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>  /**<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>   * Clear dead region servers from master.<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>   * @param servers list of dead region servers.<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>   * @return - returns a list of servers that not cleared wrapped by a {@link CompletableFuture}.<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>   */<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>  CompletableFuture&lt;List&lt;ServerName&gt;&gt; clearDeadServers(final List&lt;ServerName&gt; servers);<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span><a name="line.1368"></a>
-<span class="sourceLineNo">1369</span>  /**<a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>   * Clear all the blocks corresponding to this table from BlockCache. For expert-admins. Calling<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>   * this API will drop all the cached blocks specific to a table from BlockCache. This can<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>   * significantly impact the query performance as the subsequent queries will have to retrieve the<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>   * blocks from underlying filesystem.<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>   * @param tableName table to clear block cache<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span>   * @return CacheEvictionStats related to the eviction wrapped by a {@link CompletableFuture}.<a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>   */<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>  CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(final TableName tableName);<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span><a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>  /**<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>   * Create a new table by cloning the existent table schema.<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>   *<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>   * @param tableName name of the table to be cloned<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>   * @param newTableName name of the new table where the table will be created<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>   * @param preserveSplits True if the splits should be preserved<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>   */<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>  CompletableFuture&lt;Void&gt; cloneTableSchema(final TableName tableName,<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>      final TableName newTableName, final boolean preserveSplits);<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span><a name="line.1388"></a>
-<span class="sourceLineNo">1389</span>  /**<a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>   * Turn the compaction on or off. Disabling compactions will also interrupt any currently ongoing<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span>   * compactions. This state is ephemeral. The setting will be lost on restart. Compaction<a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>   * can also be enabled/disabled by modifying configuration hbase.regionserver.compaction.enabled<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>   * in hbase-site.xml.<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>   *<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span>   * @param switchState     Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>   * @param serverNamesList list of region servers.<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>   * @return Previous compaction states for region servers<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>   */<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>  CompletableFuture&lt;Map&lt;ServerName, Boolean&gt;&gt; compactionSwitch(boolean switchState,<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      List&lt;String&gt; serverNamesList);<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span><a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>  /**<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>   * Switch the rpc throttle enabled state.<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>   * @param enable Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>   * @return Previous rpc throttle enabled value<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>   */<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>  CompletableFuture&lt;Boolean&gt; switchRpcThrottle(boolean enable);<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span><a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>  /**<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>   * Get if the rpc throttle is enabled.<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>   * @return True if rpc throttle is enabled<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>   */<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>  CompletableFuture&lt;Boolean&gt; isRpcThrottleEnabled();<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span><a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>  /**<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>   * Switch the exceed throttle quota. If enabled, user/table/namespace throttle quota<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>   * can be exceeded if region server has availble quota.<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>   * @param enable Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>   * @return Previous exceed throttle enabled value<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>   */<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>  CompletableFuture&lt;Boolean&gt; exceedThrottleQuotaSwitch(boolean enable);<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span><a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  /**<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>   * Fetches the table sizes on the filesystem as tracked by the HBase Master.<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>   */<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>  CompletableFuture&lt;Map&lt;TableName, Long&gt;&gt; getSpaceQuotaTableSizes();<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span><a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  /**<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>   * Fetches the observed {@link SpaceQuotaSnapshotView}s observed by a RegionServer.<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>   */<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>  CompletableFuture&lt;? extends Map&lt;TableName, ? extends SpaceQuotaSnapshotView&gt;&gt;<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>      getRegionServerSpaceQuotaSnapshots(ServerName serverName);<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span><a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>  /**<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>   * Returns the Master's view of a quota on the given {@code namespace} or null if the Master has<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>   * no quota information on that namespace.<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>   */<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>  CompletableFuture&lt;? extends SpaceQuotaSnapshotView&gt;<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>      getCurrentSpaceQuotaSnapshot(String namespace);<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span><a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>  /**<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>   * Returns the Master's view of a quota on the given {@code tableName} or null if the Master has<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>   * no quota information on that table.<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>   */<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>  CompletableFuture&lt;? extends SpaceQuotaSnapshotView&gt; getCurrentSpaceQuotaSnapshot(<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>      TableName tableName);<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span><a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>  /**<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>   * Grants user specific permissions<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>   * @param userPermission user name and the specific permission<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>   * @param mergeExistingPermissions If set to false, later granted permissions will override<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   *          previous granted permissions. otherwise, it'll merge with previous granted<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   *          permissions.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   */<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>  CompletableFuture&lt;Void&gt; grant(UserPermission userPermission, boolean mergeExistingPermissions);<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span><a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>  /**<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * Revokes user specific permissions<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * @param userPermission user name and the specific permission<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   */<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>  CompletableFuture&lt;Void&gt; revoke(UserPermission userPermission);<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span><a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>  /**<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * Get the global/namespace/table permissions for user<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * @param getUserPermissionsRequest A request contains which user, global, namespace or table<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   *          permissions needed<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>   * @return The user and permission list<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>   */<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  CompletableFuture&lt;List&lt;UserPermission&gt;&gt;<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>      getUserPermissions(GetUserPermissionsRequest getUserPermissionsRequest);<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span><a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>  /**<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>   * Check if the user has specific permissions<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>   * @param userName the user name<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>   * @param permissions the specific permission list<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>   * @return True if user has the specific permissions<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>   */<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  CompletableFuture&lt;List&lt;Boolean&gt;&gt; hasUserPermissions(String userName,<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>      List&lt;Permission&gt; permissions);<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /**<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>   * Check if call user has specific permissions<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>   * @param permissions the specific permission list<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>   * @return True if user has the specific permissions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>   */<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>  default CompletableFuture&lt;List&lt;Boolean&gt;&gt; hasUserPermissions(List&lt;Permission&gt; permissions) {<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>    return hasUserPermissions(null, permissions);<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>  }<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span><a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>  /**<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>   * Turn on or off the auto snapshot cleanup based on TTL.<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * &lt;p/&gt;<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Notice that, the method itself is always non-blocking, which means it will always return<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   * immediately. The {@code sync} parameter only effects when will we complete the returned<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * {@link CompletableFuture}.<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   *<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   * @param on Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param sync If &lt;code&gt;true&lt;/code&gt;, it waits until current snapshot cleanup is completed,<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   *   if outstanding.<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * @return Previous auto snapshot cleanup value wrapped by a {@link CompletableFuture}.<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   */<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>  CompletableFuture&lt;Boolean&gt; snapshotCleanupSwitch(boolean on, boolean sync);<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span><a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>  /**<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * Query the current state of the auto snapshot cleanup based on TTL.<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   * @return true if the auto snapshot cleanup is enabled, false otherwise.<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>   *   The return value will be wrapped by a {@link CompletableFuture}.<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>   */<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>  CompletableFuture&lt;Boolean&gt; isSnapshotCleanupEnabled();<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span><a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>  /**<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>   * Retrieves online slow RPC logs from the provided list of<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>   * RegionServers<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>   *<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>   * @param serverNames Server names to get slowlog responses from<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>   * @param slowLogQueryFilter filter to be used if provided<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>   * @return Online slowlog response list. The return value wrapped by a {@link CompletableFuture}<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>   */<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>  CompletableFuture&lt;List&lt;SlowLogRecord&gt;&gt; getSlowLogResponses(final Set&lt;ServerName&gt; serverNames,<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      final SlowLogQueryFilter slowLogQueryFilter);<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span><a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  /**<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>   * Clears online slow RPC logs from the provided list of<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>   * RegionServers<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   *<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   * @param serverNames Set of Server names to clean slowlog responses from<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>   * @return List of booleans representing if online slowlog response buffer is cleaned<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>   *   from each RegionServer. The return value wrapped by a {@link CompletableFuture}<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>   */<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  CompletableFuture&lt;List&lt;Boolean&gt;&gt; clearSlowLogResponses(final Set&lt;ServerName&gt; serverNames);<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * Creates a new RegionServer group with the given name<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * @param groupName the name of the group<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @throws IOException if a remote or network exception occurs<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  CompletableFuture&lt;Void&gt; addRSGroup(String groupName);<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span><a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>  /**<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>   * Get group info for the given group name<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>   * @param groupName the group name<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>   * @return group info<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>   * @throws IOException if a remote or network exception occurs<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>   */<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  CompletableFuture&lt;RSGroupInfo&gt; getRSGroup(String groupName);<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span><a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>  /**<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>   * Get group info for the given hostPort<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>   * @param hostPort HostPort to get RSGroupInfo for<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>   * @throws IOException if a remote or network exception occurs<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>   */<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>  CompletableFuture&lt;RSGroupInfo&gt; getRSGroup(Address hostPort);<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span><a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>  /**<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>   * Get group info for the given table<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>   * @param tableName table name to get RSGroupInfo for<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>   * @throws IOException if a remote or network exception occurs<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>   */<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>  CompletableFuture&lt;RSGroupInfo&gt; getRSGroup(TableName tableName);<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span><a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>  /**<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>   * Lists current set of RegionServer groups<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>   * @throws IOException if a remote or network exception occurs<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>   */<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>  CompletableFuture&lt;List&lt;RSGroupInfo&gt;&gt; listRSGroups();<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span><a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>  /**<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>   * Get all tables in this RegionServer group.<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>   * @param groupName the group name<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>   * @throws IOException if a remote or network exception occurs<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>   * @see #getConfiguredNamespacesAndTablesInRSGroup(String)<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>   */<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>  CompletableFuture&lt;List&lt;TableName&gt;&gt; listTablesInRSGroup(String groupName);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span><a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>  /**<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>   * Get the namespaces and tables which have this RegionServer group in descriptor.<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>   * &lt;p/&gt;<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>   * The difference between this method and {@link #listTablesInRSGroup(String)} is that, this<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>   * method will not include the table which is actually in this RegionServr group but without the<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>   * RegionServer group configuration in its {@link TableDescriptor}. For example, we have a group<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>   * 'A', and we make namespace 'nsA' in this group, then all the tables under this namespace will<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>   * in the group 'A', but this method will not return these tables but only the namespace 'nsA',<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>   * while the {@link #listTablesInRSGroup(String)} will return all these tables.<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>   * @param groupName the group name<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>   * @throws IOException if a remote or network exception occurs<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>   * @see #listTablesInRSGroup(String)<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>   */<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>  CompletableFuture&lt;Pair&lt;List&lt;String&gt;, List&lt;TableName&gt;&gt;&gt;<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>    getConfiguredNamespacesAndTablesInRSGroup(String groupName);<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span><a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>  /**<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>   * Remove RegionServer group associated with the given name<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>   * @param groupName the group name<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>   * @throws IOException if a remote or network exception occurs<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>   */<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>  CompletableFuture&lt;Void&gt; removeRSGroup(String groupName);<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span><a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>  /**<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>   * Remove decommissioned servers from group<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>   *  1. Sometimes we may find the server aborted due to some hardware failure and we must offline<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>   *     the server for repairing. Or we need to move some servers to join other clusters.<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>   *     So we need to remove these servers from the group.<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>   *  2. Dead/recovering/live servers will be disallowed.<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>   * @param servers set of servers to remove<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>   * @throws IOException if a remote or network exception occurs<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>   */<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>  CompletableFuture&lt;Void&gt; removeServersFromRSGroup(Set&lt;Address&gt; servers);<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span><a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>  /**<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>   * Move given set of servers to the specified target RegionServer group<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>   * @param servers set of servers to move<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>   * @param groupName the group to move servers to<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>   * @throws IOException if a remote or network exception occurs<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>   */<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  CompletableFuture&lt;Void&gt; moveServersToRSGroup(Set&lt;Address&gt; servers, String groupName);<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span><a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>  /**<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>   * Set the RegionServer group for tables<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>   * @param tables tables to set group for<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>   * @param groupName group name for tables<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>   * @throws IOException if a remote or network exception occurs<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>   */<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>  CompletableFuture&lt;Void&gt; setRSGroup(Set&lt;TableName&gt; tables, String groupName);<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span><a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>  /**<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>   * Balance regions in the given RegionServer group<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>   * @param groupName the group name<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>   * @return boolean Whether balance ran or not<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>   * @throws IOException if a remote or network exception occurs<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>   */<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>  CompletableFuture&lt;Boolean&gt; balanceRSGroup(String groupName);<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>}<a name="line.1633"></a>
+<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.Arrays;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Collection;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.EnumSet;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.List;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.Map;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Optional;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.Set;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.concurrent.CompletableFuture;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.function.Function;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.regex.Pattern;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.CacheEvictionStats;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.ClusterMetrics;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.ClusterMetrics.Option;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.RegionMetrics;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.ServerName;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.TableName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.security.SecurityCapability;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.net.Address;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshotView;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.replication.SyncReplicationState;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.rsgroup.RSGroupInfo;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.security.access.GetUserPermissionsRequest;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.security.access.UserPermission;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>/**<a name="line.58"></a>
+<span class="sourceLineNo">059</span> * The asynchronous administrative API for HBase.<a name="line.59"></a>
+<span class="sourceLineNo">060</span> * @since 2.0.0<a name="line.60"></a>
+<span class="sourceLineNo">061</span> */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>@InterfaceAudience.Public<a name="line.62"></a>
+<span class="sourceLineNo">063</span>public interface AsyncAdmin {<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   * @param tableName Table to check.<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   * @return True if table exists already. The return value will be wrapped by a<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   *         {@link CompletableFuture}.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName);<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  /**<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * List all the userspace tables.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * @return - returns a list of TableDescriptors wrapped by a {@link CompletableFuture}.<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  default CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; listTableDescriptors() {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    return listTableDescriptors(false);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>  /**<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   * List all the tables.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   * @param includeSysTables False to match only against userspace tables<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   * @return - returns a list of TableDescriptors wrapped by a {@link CompletableFuture}.<a name="line.83"></a>
+<span class="sourceLineNo">084</span>   */<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; listTableDescriptors(boolean includeSysTables);<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   * List all the tables matching the given pattern.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * @param pattern The compiled regular expression to match against<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @param includeSysTables False to match only against userspace tables<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   * @return - returns a list of TableDescriptors wrapped by a {@link CompletableFuture}.<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   */<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; listTableDescriptors(Pattern pattern,<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      boolean includeSysTables);<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * List specific tables including system tables.<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * @param tableNames the table list to match against<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * @return - returns a list of TableDescriptors wrapped by a {@link CompletableFuture}.<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   */<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; listTableDescriptors(List&lt;TableName&gt; tableNames);<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>  /**<a name="line.103"></a>
+<span class="sourceLineNo">104</span>   * Get list of table descriptors by namespace.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>   * @param name namespace name<a name="line.105"></a>
+<span class="sourceLineNo">106</span>   * @return returns a list of TableDescriptors wrapped by a {@link CompletableFuture}.<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  CompletableFuture&lt;List&lt;TableDescriptor&gt;&gt; listTableDescriptorsByNamespace(String name);<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * List all of the names of userspace tables.<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * @return a list of table names wrapped by a {@link CompletableFuture}.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * @see #listTableNames(Pattern, boolean)<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  default CompletableFuture&lt;List&lt;TableName&gt;&gt; listTableNames() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    return listTableNames(false);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * List all of the names of tables.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   * @param includeSysTables False to match only against userspace tables<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * @return a list of table names wrapped by a {@link CompletableFuture}.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   */<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  CompletableFuture&lt;List&lt;TableName&gt;&gt; listTableNames(boolean includeSysTables);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /**<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * List all of the names of userspace tables.<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   * @param pattern The regular expression to match against<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * @param includeSysTables False to match only against userspace tables<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   * @return a list of table names wrapped by a {@link CompletableFuture}.<a name="line.130"></a>
+<span class="sourceLineNo">131</span>   */<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  CompletableFuture&lt;List&lt;TableName&gt;&gt; listTableNames(Pattern pattern, boolean includeSysTables);<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>  /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   * Get list of table names by namespace.<a name="line.135"></a>
+<span class="sourceLineNo">136</span>   * @param name namespace name<a name="line.136"></a>
+<span class="sourceLineNo">137</span>   * @return The list of table names in the namespace wrapped by a {@link CompletableFuture}.<a name="line.137"></a>
+<span class="sourceLineNo">138</span>   */<a name="line.138"></a>
+<span class="sourceLineNo">139</span>  CompletableFuture&lt;List&lt;TableName&gt;&gt; listTableNamesByNamespace(String name);<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>  /**<a name="line.141"></a>
+<span class="sourceLineNo">142</span>   * Method for getting the tableDescriptor<a name="line.142"></a>
+<span class="sourceLineNo">143</span>   * @param tableName as a {@link TableName}<a name="line.143"></a>
+<span class="sourceLineNo">144</span>   * @return the read-only tableDescriptor wrapped by a {@link CompletableFuture}.<a name="line.144"></a>
+<span class="sourceLineNo">145</span>   */<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  CompletableFuture&lt;TableDescriptor&gt; getDescriptor(TableName tableName);<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>  /**<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * Creates a new table.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * @param desc table descriptor for table<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc);<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>  /**<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   * Creates a new table with the specified number of regions. The start key specified will become<a name="line.155"></a>
+<span class="sourceLineNo">156</span>   * the end key of the first region of the table, and the end key specified will become the start<a name="line.156"></a>
+<span class="sourceLineNo">157</span>   * key of the last region of the table (the first region has a null start key and the last region<a name="line.157"></a>
+<span class="sourceLineNo">158</span>   * has a null end key). BigInteger math will be used to divide the key range specified into enough<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   * segments to make the required number of total regions.<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * @param desc table descriptor for table<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * @param startKey beginning of key range<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * @param endKey end of key range<a name="line.162"></a>
+<span class="sourceLineNo">163</span>   * @param numRegions the total number of regions to create<a name="line.163"></a>
+<span class="sourceLineNo">164</span>   */<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      int numRegions);<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * Creates a new table with an initial set of empty regions defined by the specified split keys.<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * The total number of regions created will be the number of split keys plus one.<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   * Note : Avoid passing empty split key.<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * @param desc table descriptor for table<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * @param splitKeys array of split keys for the initial regions of the table<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys);<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>  /**<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * Modify an existing table, more IRB friendly version.<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * @param desc modified description of the table<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  CompletableFuture&lt;Void&gt; modifyTable(TableDescriptor desc);<a name="line.181"></a>
+<span class="sourceLineNo">182</span><a name="line.182"></a>
+<span class="sourceLineNo">183</span>  /**<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * Deletes a table.<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * @param tableName name of table to delete<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  CompletableFuture&lt;Void&gt; deleteTable(TableName tableName);<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span>   * Truncate a table.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>   * @param tableName name of table to truncate<a name="line.191"></a>
+<span class="sourceLineNo">192</span>   * @param preserveSplits True if the splits should be preserved<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   */<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  CompletableFuture&lt;Void&gt; truncateTable(TableName tableName, boolean preserveSplits);<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>  /**<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   * Enable a table. The table has to be in disabled state for it to be enabled.<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   * @param tableName name of the table<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  CompletableFuture&lt;Void&gt; enableTable(TableName tableName);<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>  /**<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   * Disable a table. The table has to be in enabled state for it to be disabled.<a name="line.203"></a>
+<span class="sourceLineNo">204</span>   * @param tableName<a name="line.204"></a>
+<span class="sourceLineNo">205</span>   */<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  CompletableFuture&lt;Void&gt; disableTable(TableName tableName);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span>   * @param tableName name of table to check<a name="line.209"></a>
+<span class="sourceLineNo">210</span>   * @return true if table is on-line. The return value will be wrapped by a<a name="line.210"></a>
+<span class="sourceLineNo">211</span>   *         {@link CompletableFuture}.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>   */<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  CompletableFuture&lt;Boolean&gt; isTableEnabled(TableName tableName);<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  /**<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   * @param tableName name of table to check<a name="line.216"></a>
+<span class="sourceLineNo">217</span>   * @return true if table is off-line. The return value will be wrapped by a<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   *         {@link CompletableFuture}.<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   */<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  CompletableFuture&lt;Boolean&gt; isTableDisabled(TableName tableName);<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  /**<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   * @param tableName name of table to check<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   * @return true if all regions of the table are available. The return value will be wrapped by a<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   *         {@link CompletableFuture}.<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  CompletableFuture&lt;Boolean&gt; isTableAvailable(TableName tableName);<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>  /**<a name="line.229"></a>
+<span class="sourceLineNo">230</span>   * Add a column family to an existing table.<a name="line.230"></a>
+<span class="sourceLineNo">231</span>   * @param tableName name of the table to add column family to<a name="line.231"></a>
+<span class="sourceLineNo">232</span>   * @param columnFamily column family descriptor of column family to be added<a name="line.232"></a>
+<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  CompletableFuture&lt;Void&gt; addColumnFamily(TableName tableName,<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      ColumnFamilyDescriptor columnFamily);<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>  /**<a name="line.237"></a>
+<span class="sourceLineNo">238</span>   * Delete a column family from a table.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>   * @param tableName name of table<a name="line.239"></a>
+<span class="sourceLineNo">240</span>   * @param columnFamily name of column family to be deleted<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   */<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  CompletableFuture&lt;Void&gt; deleteColumnFamily(TableName tableName, byte[] columnFamily);<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span>  /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   * Modify an existing column family on a table.<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * @param tableName name of table<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   * @param columnFamily new column family descriptor to use<a name="line.247"></a>
+<span class="sourceLineNo">248</span>   */<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  CompletableFuture&lt;Void&gt; modifyColumnFamily(TableName tableName,<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      ColumnFamilyDescriptor columnFamily);<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>  /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span>   * Create a new namespace.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>   * @param descriptor descriptor which describes the new namespace<a name="line.254"></a>
+<span class="sourceLineNo">255</span>   */<a name="line.255"></a>
+<span class="sourceLineNo">256</span>  CompletableFuture&lt;Void&gt; createNamespace(NamespaceDescriptor descriptor);<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>  /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   * Modify an existing namespace.<a name="line.259"></a>
+<span class="sourceLineNo">260</span>   * @param descriptor descriptor which describes the new namespace<a name="line.260"></a>
+<span class="sourceLineNo">261</span>   */<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  CompletableFuture&lt;Void&gt; modifyNamespace(NamespaceDescriptor descriptor);<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>  /**<a name="line.264"></a>
+<span class="sourceLineNo">265</span>   * Delete an existing namespace. Only empty namespaces (no tables) can be removed.<a name="line.265"></a>
+<span class="sourceLineNo">266</span>   * @param name namespace name<a name="line.266"></a>
+<span class="sourceLineNo">267</span>   */<a name="line.267"></a>
+<span class="sourceLineNo">268</span>  CompletableFuture&lt;Void&gt; deleteNamespace(String name);<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span>  /**<a name="line.270"></a>
+<span class="sourceLineNo">271</span>   * Get a namespace descriptor by name<a name="line.271"></a>
+<span class="sourceLineNo">272</span>   * @param name name of namespace descriptor<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   * @return A descriptor wrapped by a {@link CompletableFuture}.<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   */<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  CompletableFuture&lt;NamespaceDescriptor&gt; getNamespaceDescriptor(String name);<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span>  /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   * List available namespaces<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   * @return List of namespaces wrapped by a {@link CompletableFuture}.<a name="line.279"></a>
+<span class="sourceLineNo">280</span>   */<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  CompletableFuture&lt;List&lt;String&gt;&gt; listNamespaces();<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>  /**<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   * List available namespace descriptors<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * @return List of descriptors wrapped by a {@link CompletableFuture}.<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  CompletableFuture&lt;List&lt;NamespaceDescriptor&gt;&gt; listNamespaceDescriptors();<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>  /**<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   * Get all the online regions on a region server.<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   */<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  CompletableFuture&lt;List&lt;RegionInfo&gt;&gt; getRegions(ServerName serverName);<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>  /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * Get the regions of a given table.<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   */<a name="line.296"></a>
+<span class="sourceLineNo">297</span>  CompletableFuture&lt;List&lt;RegionInfo&gt;&gt; getRegions(TableName tableName);<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>  /**<a name="line.299"></a>
+<span class="sourceLineNo">300</span>   * Flush a table.<a name="line.300"></a>
+<span class="sourceLineNo">301</span>   * @param tableName table to flush<a name="line.301"></a>
+<span class="sourceLineNo">302</span>   */<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  CompletableFuture&lt;Void&gt; flush(TableName tableName);<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  /**<a name="line.305"></a>
+<span class="sourceLineNo">306</span>   * Flush an individual region.<a name="line.306"></a>
+<span class="sourceLineNo">307</span>   * @param regionName region to flush<a name="line.307"></a>
+<span class="sourceLineNo">308</span>   */<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  CompletableFuture&lt;Void&gt; flushRegion(byte[] regionName);<a name="line.309"></a>
+<span class="sourceLineNo">310</span><a name="line.310"></a>
+<span class="sourceLineNo">311</span>  /**<a name="line.311"></a>
+<span class="sourceLineNo">312</span>   * Flush all region on the region server.<a name="line.312"></a>
+<span class="sourceLineNo">313</span>   * @param serverName server to flush<a name="line.313"></a>
+<span class="sourceLineNo">314</span>   */<a name="line.314"></a>
+<span class="sourceLineNo">315</span>  CompletableFuture&lt;Void&gt; flushRegionServer(ServerName serverName);<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>  /**<a name="line.317"></a>
+<span class="sourceLineNo">318</span>   * Compact a table. When the returned CompletableFuture is done, it only means the compact request<a name="line.318"></a>
+<span class="sourceLineNo">319</span>   * was sent to HBase and may need some time to finish the compact operation.<a name="line.319"></a>
+<span class="sourceLineNo">320</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found.<a name="line.320"></a>
+<span class="sourceLineNo">321</span>   * @param tableName table to compact<a name="line.321"></a>
+<span class="sourceLineNo">322</span>   */<a name="line.322"></a>
+<span class="sourceLineNo">323</span>  default CompletableFuture&lt;Void&gt; compact(TableName tableName) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    return compact(tableName, CompactType.NORMAL);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>  }<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>  /**<a name="line.327"></a>
+<span class="sourceLineNo">328</span>   * Compact a column family within a table. When the returned CompletableFuture is done, it only<a name="line.328"></a>
+<span class="sourceLineNo">329</span>   * means the compact request was sent to HBase and may need some time to finish the compact<a name="line.329"></a>
+<span class="sourceLineNo">330</span>   * operation.<a name="line.330"></a>
+<span class="sourceLineNo">331</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found.<a name="line.331"></a>
+<span class="sourceLineNo">332</span>   * @param tableName table to compact<a name="line.332"></a>
+<span class="sourceLineNo">333</span>   * @param columnFamily column family within a table. If not present, compact the table's all<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   *          column families.<a name="line.334"></a>
+<span class="sourceLineNo">335</span>   */<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  default CompletableFuture&lt;Void&gt; compact(TableName tableName, byte[] columnFamily) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    return compact(tableName, columnFamily, CompactType.NORMAL);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * Compact a table. When the returned CompletableFuture is done, it only means the compact request<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   * was sent to HBase and may need some time to finish the compact operation.<a name="line.342"></a>
+<span class="sourceLineNo">343</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found for<a name="line.343"></a>
+<span class="sourceLineNo">344</span>   * normal compaction type.<a name="line.344"></a>
+<span class="sourceLineNo">345</span>   * @param tableName table to compact<a name="line.345"></a>
+<span class="sourceLineNo">346</span>   * @param compactType {@link org.apache.hadoop.hbase.client.CompactType}<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  CompletableFuture&lt;Void&gt; compact(TableName tableName, CompactType compactType);<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  /**<a name="line.350"></a>
+<span class="sourceLineNo">351</span>   * Compact a column family within a table. When the returned CompletableFuture is done, it only<a name="line.351"></a>
+<span class="sourceLineNo">352</span>   * means the compact request was sent to HBase and may need some time to finish the compact<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   * operation.<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found for<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   * normal compaction type.<a name="line.355"></a>
+<span class="sourceLineNo">356</span>   * @param tableName table to compact<a name="line.356"></a>
+<span class="sourceLineNo">357</span>   * @param columnFamily column family within a table<a name="line.357"></a>
+<span class="sourceLineNo">358</span>   * @param compactType {@link org.apache.hadoop.hbase.client.CompactType}<a name="line.358"></a>
+<span class="sourceLineNo">359</span>   */<a name="line.359"></a>
+<span class="sourceLineNo">360</span>  CompletableFuture&lt;Void&gt; compact(TableName tableName, byte[] columnFamily,<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      CompactType compactType);<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>  /**<a name="line.363"></a>
+<span class="sourceLineNo">364</span>   * Compact an individual region. When the returned CompletableFuture is done, it only means the<a name="line.364"></a>
+<span class="sourceLineNo">365</span>   * compact request was sent to HBase and may need some time to finish the compact operation.<a name="line.365"></a>
+<span class="sourceLineNo">366</span>   * @param regionName region to compact<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   */<a name="line.367"></a>
+<span class="sourceLineNo">368</span>  CompletableFuture&lt;Void&gt; compactRegion(byte[] regionName);<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>  /**<a name="line.370"></a>
+<span class="sourceLineNo">371</span>   * Compact a column family within a region. When the returned CompletableFuture is done, it only<a name="line.371"></a>
+<span class="sourceLineNo">372</span>   * means the compact request was sent to HBase and may need some time to finish the compact<a name="line.372"></a>
+<span class="sourceLineNo">373</span>   * operation.<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   * @param regionName region to compact<a name="line.374"></a>
+<span class="sourceLineNo">375</span>   * @param columnFamily column family within a region. If not present, compact the region's all<a name="line.375"></a>
+<span class="sourceLineNo">376</span>   *          column families.<a name="line.376"></a>
+<span class="sourceLineNo">377</span>   */<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  CompletableFuture&lt;Void&gt; compactRegion(byte[] regionName, byte[] columnFamily);<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>  /**<a name="line.380"></a>
+<span class="sourceLineNo">381</span>   * Major compact a table. When the returned CompletableFuture is done, it only means the compact<a name="line.381"></a>
+<span class="sourceLineNo">382</span>   * request was sent to HBase and may need some time to finish the compact operation.<a name="line.382"></a>
+<span class="sourceLineNo">383</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found.<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   * @param tableName table to major compact<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   */<a name="line.385"></a>
+<span class="sourceLineNo">386</span>  default CompletableFuture&lt;Void&gt; majorCompact(TableName tableName) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    return majorCompact(tableName, CompactType.NORMAL);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>  /**<a name="line.390"></a>
+<span class="sourceLineNo">391</span>   * Major compact a column family within a table. When the returned CompletableFuture is done, it<a name="line.391"></a>
+<span class="sourceLineNo">392</span>   * only means the compact request was sent to HBase and may need some time to finish the compact<a name="line.392"></a>
+<span class="sourceLineNo">393</span>   * operation.<a name="line.393"></a>
+<span class="sourceLineNo">394</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found for<a name="line.394"></a>
+<span class="sourceLineNo">395</span>   * normal compaction. type.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * @param tableName table to major compact<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * @param columnFamily column family within a table. If not present, major compact the table's all<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   *          column families.<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
+<span class="sourceLineNo">400</span>  default CompletableFuture&lt;Void&gt; majorCompact(TableName tableName, byte[] columnFamily) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    return majorCompact(tableName, columnFamily, CompactType.NORMAL);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>  /**<a name="line.404"></a>
+<span class="sourceLineNo">405</span>   * Major compact a table. When the returned CompletableFuture is done, it only means the compact<a name="line.405"></a>
+<span class="sourceLineNo">406</span>   * request was sent to HBase and may need some time to finish the compact operation.<a name="line.406"></a>
+<span class="sourceLineNo">407</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found for<a name="line.407"></a>
+<span class="sourceLineNo">408</span>   * normal compaction type.<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   * @param tableName table to major compact<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * @param compactType {@link org.apache.hadoop.hbase.client.CompactType}<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
+<span class="sourceLineNo">412</span>  CompletableFuture&lt;Void&gt; majorCompact(TableName tableName, CompactType compactType);<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>  /**<a name="line.414"></a>
+<span class="sourceLineNo">415</span>   * Major compact a column family within a table. When the returned CompletableFuture is done, it<a name="line.415"></a>
+<span class="sourceLineNo">416</span>   * only means the compact request was sent to HBase and may need some time to finish the compact<a name="line.416"></a>
+<span class="sourceLineNo">417</span>   * operation.<a name="line.417"></a>
+<span class="sourceLineNo">418</span>   * Throws {@link org.apache.hadoop.hbase.TableNotFoundException} if table not found.<a name="line.418"></a>
+<span class="sourceLineNo">419</span>   * @param tableName table to major compact<a name="line.419"></a>
+<span class="sourceLineNo">420</span>   * @param columnFamily column family within a table. If not present, major compact the table's all<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   *          column families.<a name="line.421"></a>
+<span class="sourceLineNo">422</span>   * @param compactType {@link org.apache.hadoop.hbase.client.CompactType}<a name="line.422"></a>
+<span class="sourceLineNo">423</span>   */<a name="line.423"></a>
+<span class="sourceLineNo">424</span>  CompletableFuture&lt;Void&gt; majorCompact(TableName tableName, byte[] columnFamily,<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      CompactType compactType);<a name="line.425"></a>
+<span class="sourceLineNo">426</span><a name="line.426"></a>
+<span class="sourceLineNo">427</span>  /**<a name="line.427"></a>
+<span class="sourceLineNo">428</span>   * Major compact a region. When the returned CompletableFuture is done, it only means the compact<a name="line.428"></a>
+<span class="sourceLineNo">429</span>   * request was sent to HBase and may need some time to finish the compact operation.<a name="line.429"></a>
+<span class="sourceLineNo">430</span>   * @param regionName region to major compact<a name="line.430"></a>
+<span class="sourceLineNo">431</span>   */<a name="line.431"></a>
+<span class="sourceLineNo">432</span>  CompletableFuture&lt;Void&gt; majorCompactRegion(byte[] regionName);<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>  /**<a name="line.434"></a>
+<span class="sourceLineNo">435</span>   * Major compact a column family within region. When the returned CompletableFuture is done, it<a name="line.435"></a>
+<span class="sourceLineNo">436</span>   * only means the compact request was sent to HBase and may need some time to finish the compact<a name="line.436"></a>
+<span class="sourceLineNo">437</span>   * operation.<a name="line.437"></a>
+<span class="sourceLineNo">438</span>   * @param regionName region to major compact<a name="line.438"></a>
+<span class="sourceLineNo">439</span>   * @param columnFamily column family within a region. If not present, major compact the region's<a name="line.439"></a>
+<span class="sourceLineNo">440</span>   *          all column families.<a name="line.440"></a>
+<span class="sourceLineNo">441</span>   */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  CompletableFuture&lt;Void&gt; majorCompactRegion(byte[] regionName, byte[] columnFamily);<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>  /**<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   * Compact all regions on the region server.<a name="line.445"></a>
+<span class="sourceLineNo">446</span>   * @param serverName the region server name<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  CompletableFuture&lt;Void&gt; compactRegionServer(ServerName serverName);<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
+<span class="sourceLineNo">451</span>   * Compact all regions on the region server.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>   * @param serverName the region server name<a name="line.452"></a>
+<span class="sourceLineNo">453</span>   */<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  CompletableFuture&lt;Void&gt; majorCompactRegionServer(ServerName serverName);<a name="line.454"></a>
+<span class="sourceLineNo">455</span><a name="line.455"></a>
+<span class="sourceLineNo">456</span>  /**<a name="line.456"></a>
+<span class="sourceLineNo">457</span>   * Turn the Merge switch on or off.<a name="line.457"></a>
+<span class="sourceLineNo">458</span>   * @param enabled enabled or not<a name="line.458"></a>
+<span class="sourceLineNo">459</span>   * @return Previous switch value wrapped by a {@link CompletableFuture}<a name="line.459"></a>
+<span class="sourceLineNo">460</span>   */<a name="line.460"></a>
+<span class="sourceLineNo">461</span>  default CompletableFuture&lt;Boolean&gt; mergeSwitch(boolean enabled) {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    return mergeSwitch(enabled, false);<a name="line.462"></a>
+<span class="sourceLineNo">463</span>  }<a name="line.463"></a>
+<span class="sourceLineNo">464</span><a name="line.464"></a>
+<span class="sourceLineNo">465</span>  /**<a name="line.465"></a>
+<span class="sourceLineNo">466</span>   * Turn the Merge switch on or off.<a name="line.466"></a>
+<span class="sourceLineNo">467</span>   * &lt;p/&gt;<a name="line.467"></a>
+<span class="sourceLineNo">468</span>   * Notice that, the method itself is always non-blocking, which means it will always return<a name="line.468"></a>
+<span class="sourceLineNo">469</span>   * immediately. The {@code drainMerges} parameter only effects when will we complete the returned<a name="line.469"></a>
+<span class="sourceLineNo">470</span>   * {@link CompletableFuture}.<a name="line.470"></a>
+<span class="sourceLineNo">471</span>   * @param enabled enabled or not<a name="line.471"></a>
+<span class="sourceLineNo">472</span>   * @param drainMerges If &lt;code&gt;true&lt;/code&gt;, it waits until current merge() call, if outstanding,<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   *          to return.<a name="line.473"></a>
+<span class="sourceLineNo">474</span>   * @return Previous switch value wrapped by a {@link CompletableFuture}<a name="line.474"></a>
+<span class="sourceLineNo">475</span>   */<a name="line.475"></a>
+<span class="sourceLineNo">476</span>  CompletableFuture&lt;Boolean&gt; mergeSwitch(boolean enabled, boolean drainMerges);<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>  /**<a name="line.478"></a>
+<span class="sourceLineNo">479</span>   * Query the current state of the Merge switch.<a name="line.479"></a>
+<span class="sourceLineNo">480</span>   * @return true if the switch is on, false otherwise. The return value will be wrapped by a<a name="line.480"></a>
+<span class="sourceLineNo">481</span>   *         {@link CompletableFuture}<a name="line.481"></a>
+<span class="sourceLineNo">482</span>   */<a name="line.482"></a>
+<span class="sourceLineNo">483</span>  CompletableFuture&lt;Boolean&gt; isMergeEnabled();<a name="line.483"></a>
+<span class="sourceLineNo">484</span><a name="line.484"></a>
+<span class="sourceLineNo">485</span>  /**<a name="line.485"></a>
+<span class="sourceLineNo">486</span>   * Turn the Split switch on or off.<a name="line.486"></a>
+<span class="sourceLineNo">487</span>   * @param enabled enabled or not<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   * @return Previous switch value wrapped by a {@link CompletableFuture}<a name="line.488"></a>
+<span class="sourceLineNo">489</span>   */<a name="line.489"></a>
+<span class="sourceLineNo">490</span>  default CompletableFuture&lt;Boolean&gt; splitSwitch(boolean enabled) {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    return splitSwitch(enabled, false);<a name="line.491"></a>
+<span class="sourceLineNo">492</span>  }<a name="line.492"></a>
+<span class="sourceLineNo">493</span><a name="line.493"></a>
+<span class="sourceLineNo">494</span>  /**<a name="line.494"></a>
+<span class="sourceLineNo">495</span>   * Turn the Split switch on or off.<a name="line.495"></a>
+<span class="sourceLineNo">496</span>   * &lt;p/&gt;<a name="line.496"></a>
+<span class="sourceLineNo">497</span>   * Notice that, the method itself is always non-blocking, which means it will always return<a name="line.497"></a>
+<span class="sourceLineNo">498</span>   * immediately. The {@code drainSplits} parameter only effects when will we complete the returned<a name="line.498"></a>
+<span class="sourceLineNo">499</span>   * {@link CompletableFuture}.<a name="line.499"></a>
+<span class="sourceLineNo">500</span>   * @param enabled enabled or not<a name="line.500"></a>
+<span class="sourceLineNo">501</span>   * @param drainSplits If &lt;code&gt;true&lt;/code&gt;, it waits until current split() call, if outstanding,<a name="line.501"></a>
+<span class="sourceLineNo">502</span>   *          to return.<a name="line.502"></a>
+<span class="sourceLineNo">503</span>   * @return Previous switch value wrapped by a {@link CompletableFuture}<a name="line.503"></a>
+<span class="sourceLineNo">504</span>   */<a name="line.504"></a>
+<span class="sourceLineNo">505</span>  CompletableFuture&lt;Boolean&gt; splitSwitch(boolean enabled, boolean drainSplits);<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span>  /**<a name="line.507"></a>
+<span class="sourceLineNo">508</span>   * Query the current state of the Split switch.<a name="line.508"></a>
+<span class="sourceLineNo">509</span>   * @return true if the switch is on, false otherwise. The return value will be wrapped by a<a name="line.509"></a>
+<span class="sourceLineNo">510</span>   *         {@link CompletableFuture}<a name="line.510"></a>
+<span class="sourceLineNo">511</span>   */<a name="line.511"></a>
+<span class="sourceLineNo">512</span>  CompletableFuture&lt;Boolean&gt; isSplitEnabled();<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span>  /**<a name="line.514"></a>
+<span class="sourceLineNo">515</span>   * Merge two regions.<a name="line.515"></a>
+<span class="sourceLineNo">516</span>   * @param nameOfRegionA encoded or full name of region a<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   * @param nameOfRegionB encoded or full name of region b<a name="line.517"></a>
+<span class="sourceLineNo">518</span>   * @param forcible true if do a compulsory merge, otherwise we will only merge two adjacent<a name="line.518"></a>
+<span class="sourceLineNo">519</span>   *          regions<a name="line.519"></a>
+<span class="sourceLineNo">520</span>   * @deprecated since 2.3.0 and will be removed in 4.0.0.Use {@link #mergeRegions(List, boolean)}<a name="line.520"></a>
+<span class="sourceLineNo">521</span>   *             instead.<a name="line.521"></a>
+<span class="sourceLineNo">522</span>   */<a name="line.522"></a>
+<span class="sourceLineNo">523</span>  @Deprecated<a name="line.523"></a>
+<span class="sourceLineNo">524</span>  default CompletableFuture&lt;Void&gt; mergeRegions(byte[] nameOfRegionA, byte[] nameOfRegionB,<a name="line.524"></a>
+<span class="sourceLineNo">525</span>      boolean forcible) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>    return mergeRegions(Arrays.asList(nameOfRegionA, nameOfRegionB), forcible);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>  }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>  /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>   * Merge multiple regions (&gt;=2).<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   * @param nameOfRegionsToMerge encoded or full name of daughter regions<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   * @param forcible true if do a compulsory merge, otherwise we will only merge two adjacent<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   *          regions<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   */<a name="line.534"></a>
+<span class="sourceLineNo">535</span>  CompletableFuture&lt;Void&gt; mergeRegions(List&lt;byte[]&gt; nameOfRegionsToMerge, boolean forcible);<a name="line.535"></a>
+<span class="sourceLineNo">536</span><a name="line.536"></a>
+<span class="sourceLineNo">537</span>  /**<a name="line.537"></a>
+<span class="sourceLineNo">538</span>   * Split a table. The method will execute split action for each region in table.<a name="line.538"></a>
+<span class="sourceLineNo">539</span>   * @param tableName table to split<a name="line.539"></a>
+<span class="sourceLineNo">540</span>   */<a name="line.540"></a>
+<span class="sourceLineNo">541</span>  CompletableFuture&lt;Void&gt; split(TableName tableName);<a name="line.541"></a>
+<span class="sourceLineNo">542</span><a name="line.542"></a>
+<span class="sourceLineNo">543</span>  /**<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * Split an individual region.<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * @param regionName region to split<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>  CompletableFuture&lt;Void&gt; splitRegion(byte[] regionName);<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span>  /**<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   * Split a table.<a name="line.550"></a>
+<span class="sourceLineNo">551</span>   * @param tableName table to split<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * @param splitPoint the explicit position to split on<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  CompletableFuture&lt;Void&gt; split(TableName tableName, byte[] splitPoint);<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>  /**<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   * Split an individual region.<a name="line.557"></a>
+<span class="sourceLineNo">558</span>   * @param regionName region to split<a name="line.558"></a>
+<span class="sourceLineNo">559</span>   * @param splitPoint the explicit position to split on. If not present, it will decide by region<a name="line.559"></a>
+<span class="sourceLineNo">560</span>   *          server.<a name="line.560"></a>
+<span class="sourceLineNo">561</span>   */<a name="line.561"></a>
+<span class="sourceLineNo">562</span>  CompletableFuture&lt;Void&gt; splitRegion(byte[] regionName, byte[] splitPoint);<a name="line.562"></a>
+<span class="sourceLineNo">563</span><a name="line.563"></a>
+<span class="sourceLineNo">564</span>  /**<a name="line.564"></a>
+<span class="sourceLineNo">565</span>   * @param regionName Encoded or full name of region to assign.<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   */<a name="line.566"></a>
+<span class="sourceLineNo">567</span>  CompletableFuture&lt;Void&gt; assign(byte[] regionName);<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>  /**<a name="line.569"></a>
+<span class="sourceLineNo">570</span>   * Unassign a region from current hosting regionserver. Region will then be assigned to a<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   * regionserver chosen at random. Region could be reassigned back to the same server. Use<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   * {@link #move(byte[], ServerName)} if you want to control the region movement.<a name="line.572"></a>
+<span class="sourceLineNo">573</span>   * @param regionName Encoded or full name of region to unassign. Will clear any existing<a name="line.573"></a>
+<span class="sourceLineNo">574</span>   *          RegionPlan if one found.<a name="line.574"></a>
+<span class="sourceLineNo">575</span>   * @param forcible If true, force unassign (Will remove region from regions-in-transition too if<a name="line.575"></a>
+<span class="sourceLineNo">576</span>   *          present. If results in double assignment use hbck -fix to resolve. To be used by<a name="line.576"></a>
+<span class="sourceLineNo">577</span>   *          experts).<a name="line.577"></a>
+<span class="sourceLineNo">578</span>   */<a name="line.578"></a>
+<span class="sourceLineNo">579</span>  CompletableFuture&lt;Void&gt; unassign(byte[] regionName, boolean forcible);<a name="line.579"></a>
+<span class="sourceLineNo">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span>  /**<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   * Offline specified region from master's in-memory state. It will not attempt to reassign the<a name="line.582"></a>
+<span class="sourceLineNo">583</span>   * region as in unassign. This API can be used when a region not served by any region server and<a name="line.583"></a>
+<span class="sourceLineNo">584</span>   * still online as per Master's in memory state. If this API is incorrectly used on active region<a name="line.584"></a>
+<span class="sourceLineNo">585</span>   * then master will loose track of that region. This is a special method that should be used by<a name="line.585"></a>
+<span class="sourceLineNo">586</span>   * experts or hbck.<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   * @param regionName Encoded or full name of region to offline<a name="line.587"></a>
+<span class="sourceLineNo">588</span>   */<a name="line.588"></a>
+<span class="sourceLineNo">589</span>  CompletableFuture&lt;Void&gt; offline(byte[] regionName);<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>  /**<a name="line.591"></a>
+<span class="sourceLineNo">592</span>   * Move the region &lt;code&gt;r&lt;/code&gt; to a random server.<a name="line.592"></a>
+<span class="sourceLineNo">593</span>   * @param regionName Encoded or full name of region to move.<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   */<a name="line.594"></a>
+<span class="sourceLineNo">595</span>  CompletableFuture&lt;Void&gt; move(byte[] regionName);<a name="line.595"></a>
+<span class="sourceLineNo">596</span><a name="line.596"></a>
+<span class="sourceLineNo">597</span>  /**<a name="line.597"></a>
+<span class="sourceLineNo">598</span>   * Move the region &lt;code&gt;r&lt;/code&gt; to &lt;code&gt;dest&lt;/code&gt;.<a name="line.598"></a>
+<span class="sourceLineNo">599</span>   * @param regionName Encoded or full name of region to move.<a name="line.599"></a>
+<span class="sourceLineNo">600</span>   * @param destServerName The servername of the destination regionserver. If not present, we'll<a name="line.600"></a>
+<span class="sourceLineNo">601</span>   *          assign to a random server. A server name is made of host, port and startcode. Here is<a name="line.601"></a>
+<span class="sourceLineNo">602</span>   *          an example: &lt;code&gt; host187.example.com,60020,1289493121758&lt;/code&gt;<a name="line.602"></a>
+<span class="sourceLineNo">603</span>   */<a name="line.603"></a>
+<span class="sourceLineNo">604</span>  CompletableFuture&lt;Void&gt; move(byte[] regionName, ServerName destServerName);<a name="line.604"></a>
+<span class="sourceLineNo">605</span><a name="line.605"></a>
+<span class="sourceLineNo">606</span>  /**<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   * Apply the new quota settings.<a name="line.607"></a>
+<span class="sourceLineNo">608</span>   * @param quota the quota settings<a name="line.608"></a>
+<span class="sourceLineNo">609</span>   */<a name="line.609"></a>
+<span class="sourceLineNo">610</span>  CompletableFuture&lt;Void&gt; setQuota(QuotaSettings quota);<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span>  /**<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   * List the quotas based on the filter.<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * @param filter the quota settings filter<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   * @return the QuotaSetting list, which wrapped by a CompletableFuture.<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   */<a name="line.616"></a>
+<span class="sourceLineNo">617</span>  CompletableFuture&lt;List&lt;QuotaSettings&gt;&gt; getQuota(QuotaFilter filter);<a name="line.617"></a>
+<span class="sourceLineNo">618</span><a name="line.618"></a>
+<span class="sourceLineNo">619</span>  /**<a name="line.619"></a>
+<span class="sourceLineNo">620</span>   * Add a new replication peer for replicating data to slave cluster<a name="line.620"></a>
+<span class="sourceLineNo">621</span>   * @param peerId a short name that identifies the peer<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * @param peerConfig configuration for the replication slave cluster<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   */<a name="line.623"></a>
+<span class="sourceLineNo">624</span>  default CompletableFuture&lt;Void&gt; addReplicationPeer(String peerId,<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      ReplicationPeerConfig peerConfig) {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    return addReplicationPeer(peerId, peerConfig, true);<a name="line.626"></a>
+<span class="sourceLineNo">627</span>  }<a name="line.627"></a>
+<span class="sourceLineNo">628</span><a name="line.628"></a>
+<span class="sourceLineNo">629</span>  /**<a name="line.629"></a>
+<span class="sourceLineNo">630</span>   * Add a new replication peer for replicating data to slave cluster<a name="line.630"></a>
+<span class="sourceLineNo">631</span>   * @param peerId a short name that identifies the peer<a name="line.631"></a>
+<span class="sourceLineNo">632</span>   * @param peerConfig configuration for the replication slave cluster<a name="line.632"></a>
+<span class="sourceLineNo">633</span>   * @param enabled peer state, true if ENABLED and false if DISABLED<a name="line.633"></a>
+<span class="sourceLineNo">634</span>   */<a name="line.634"></a>
+<span class="sourceLineNo">635</span>  CompletableFuture&lt;Void&gt; addReplicationPeer(String peerId,<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      ReplicationPeerConfig peerConfig, boolean enabled);<a name="line.636"></a>
+<span class="sourceLineNo">637</span><a name="line.637"></a>
+<span class="sourceLineNo">638</span>  /**<a name="line.638"></a>
+<span class="sourceLineNo">639</span>   * Remove a peer and stop the replication<a name="line.639"></a>
+<span class="sourceLineNo">640</span>   * @param peerId a short name that identifies the peer<a name="line.640"></a>
+<span class="sourceLineNo">641</span>   */<a name="line.641"></a>
+<span class="sourceLineNo">642</span>  CompletableFuture&lt;Void&gt; removeReplicationPeer(String peerId);<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>  /**<a name="line.644"></a>
+<span class="sourceLineNo">645</span>   * Restart the replication stream to the specified peer<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   * @param peerId a short name that identifies the peer<a name="line.646"></a>
+<span class="sourceLineNo">647</span>   */<a name="line.647"></a>
+<span class="sourceLineNo">648</span>  CompletableFuture&lt;Void&gt; enableReplicationPeer(String peerId);<a name="line.648"></a>
+<span class="sourceLineNo">649</span><a name="line.649"></a>
+<span class="sourceLineNo">650</span>  /**<a name="line.650"></a>
+<span class="sourceLineNo">651</span>   * Stop the replication stream to the specified peer<a name="line.651"></a>
+<span class="sourceLineNo">652</span>   * @param peerId a short name that identifies the peer<a name="line.652"></a>
+<span class="sourceLineNo">653</span>   */<a name="line.653"></a>
+<span class="sourceLineNo">654</span>  CompletableFuture&lt;Void&gt; disableReplicationPeer(String peerId);<a name="line.654"></a>
+<span class="sourceLineNo">655</span><a name="line.655"></a>
+<span class="sourceLineNo">656</span>  /**<a name="line.656"></a>
+<span class="sourceLineNo">657</span>   * Returns the configured ReplicationPeerConfig for the specified peer<a name="line.657"></a>
+<span class="sourceLineNo">658</span>   * @param peerId a short name that identifies the peer<a name="line.658"></a>
+<span class="sourceLineNo">659</span>   * @return ReplicationPeerConfig for the peer wrapped by a {@link CompletableFuture}.<a name="line.659"></a>
+<span class="sourceLineNo">660</span>   */<a name="line.660"></a>
+<span class="sourceLineNo">661</span>  CompletableFuture&lt;ReplicationPeerConfig&gt; getReplicationPeerConfig(String peerId);<a name="line.661"></a>
+<span class="sourceLineNo">662</span><a name="line.662"></a>
+<span class="sourceLineNo">663</span>  /**<a name="line.663"></a>
+<span class="sourceLineNo">664</span>   * Update the peerConfig for the specified peer<a name="line.664"></a>
+<span class="sourceLineNo">665</span>   * @param peerId a short name that identifies the peer<a name="line.665"></a>
+<span class="sourceLineNo">666</span>   * @param peerConfig new config for the peer<a name="line.666"></a>
+<span class="sourceLineNo">667</span>   */<a name="line.667"></a>
+<span class="sourceLineNo">668</span>  CompletableFuture&lt;Void&gt; updateReplicationPeerConfig(String peerId,<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      ReplicationPeerConfig peerConfig);<a name="line.669"></a>
+<span class="sourceLineNo">670</span><a name="line.670"></a>
+<span class="sourceLineNo">671</span>  /**<a name="line.671"></a>
+<span class="sourceLineNo">672</span>   * Transit current cluster to a new state in a synchronous replication peer.<a name="line.672"></a>
+<span class="sourceLineNo">673</span>   * @param peerId a short name that identifies the peer<a name="line.673"></a>
+<span class="sourceLineNo">674</span>   * @param state a new state of current cluster<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   */<a name="line.675"></a>
+<span class="sourceLineNo">676</span>  CompletableFuture&lt;Void&gt; transitReplicationPeerSyncReplicationState(String peerId,<a name="line.676"></a>
+<span class="sourceLineNo">677</span>      SyncReplicationState state);<a name="line.677"></a>
+<span class="sourceLineNo">678</span><a name="line.678"></a>
+<span class="sourceLineNo">679</span>  /**<a name="line.679"></a>
+<span class="sourceLineNo">680</span>   * Get the current cluster state in a synchronous replication peer.<a name="line.680"></a>
+<span class="sourceLineNo">681</span>   * @param peerId a short name that identifies the peer<a name="line.681"></a>
+<span class="sourceLineNo">682</span>   * @return the current cluster state wrapped by a {@link CompletableFuture}.<a name="line.682"></a>
+<span class="sourceLineNo">683</span>   */<a name="line.683"></a>
+<span class="sourceLineNo">684</span>  default CompletableFuture&lt;SyncReplicationState&gt; getReplicationPeerSyncReplicationState(<a name="line.684"></a>
+<span class="sourceLineNo">685</span>      String peerId) {<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    CompletableFuture&lt;SyncReplicationState&gt; future = new CompletableFuture&lt;&gt;();<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    addListener(listReplicationPeers(Pattern.compile(peerId)), (peers, error) -&gt; {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      if (error != null) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>        future.completeExceptionally(error);<a name="line.689"></a>
+<span class="sourceLineNo">690</span>      } else if (peers.isEmpty() || !peers.get(0).getPeerId().equals(peerId)) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>        future<a name="line.691"></a>
+<span class="sourceLineNo">692</span>          .completeExceptionally(new IOException("Replication peer " + peerId + " does not exist"));<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      } else {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        future.complete(peers.get(0).getSyncReplicationState());<a name="line.694"></a>
+<span class="sourceLineNo">695</span>      }<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    });<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    return future;<a name="line.697"></a>
+<span class="sourceLineNo">698</span>  }<a name="line.698"></a>
+<span class="sourceLineNo">699</span><a name="line.699"></a>
+<span class="sourceLineNo">700</span>  /**<a name="line.700"></a>
+<span class="sourceLineNo">701</span>   * Append the replicable table-cf config of the specified peer<a name="line.701"></a>
+<span class="sourceLineNo">702</span>   * @param peerId a short that identifies the cluster<a name="line.702"></a>
+<span class="sourceLineNo">703</span>   * @param tableCfs A map from tableName to column family names<a name="line.703"></a>
+<span class="sourceLineNo">704</span>   */<a name="line.704"></a>
+<span class="sourceLineNo">705</span>  CompletableFuture&lt;Void&gt; appendReplicationPeerTableCFs(String peerId,<a name="line.705"></a>
+<span class="sourceLineNo">706</span>      Map&lt;TableName, List&lt;String&gt;&gt; tableCfs);<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>  /**<a name="line.708"></a>
+<span class="sourceLineNo">709</span>   * Remove some table-cfs from config of the specified peer<a name="line.709"></a>
+<span class="sourceLineNo">710</span>   * @param peerId a short name that identifies the cluster<a name="line.710"></a>
+<span class="sourceLineNo">711</span>   * @param tableCfs A map from tableName to column family names<a name="line.711"></a>
+<span class="sourceLineNo">712</span>   */<a name="line.712"></a>
+<span class="sourceLineNo">713</span>  CompletableFuture&lt;Void&gt; removeReplicationPeerTableCFs(String peerId,<a name="line.713"></a>
+<span class="sourceLineNo">714</span>      Map&lt;TableName, List&lt;String&gt;&gt; tableCfs);<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>  /**<a name="line.716"></a>
+<span class="sourceLineNo">717</span>   * Return a list of replication peers.<a name="line.717"></a>
+<span class="sourceLineNo">718</span>   * @return a list of replication peers description. The return value will be wrapped by a<a name="line.718"></a>
+<span class="sourceLineNo">719</span>   *         {@link CompletableFuture}.<a name="line.719"></a>
+<span class="sourceLineNo">720</span>   */<a name="line.720"></a>
+<span class="sourceLineNo">721</span>  CompletableFuture&lt;List&lt;ReplicationPeerDescription&gt;&gt; listReplicationPeers();<a name="line.721"></a>
+<span class="sourceLineNo">722</span><a name="line.722"></a>
+<span class="sourceLineNo">723</span>  /**<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * Return a list of replication peers.<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * @param pattern The compiled regular expression to match peer id<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   * @return a list of replication peers description. The return value will be wrapped by a<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   *         {@link CompletableFuture}.<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   */<a name="line.728"></a>
+<span class="sourceLineNo">729</span>  CompletableFuture&lt;List&lt;ReplicationPeerDescription&gt;&gt; listReplicationPeers(Pattern pattern);<a name="line.729"></a>
+<span class="sourceLineNo">730</span><a name="line.730"></a>
+<span class="sourceLineNo">731</span>  /**<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * Find all table and column families that are replicated from this cluster<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   * @return the replicated table-cfs list of this cluster. The return value will be wrapped by a<a name="line.733"></a>
+<span class="sourceLineNo">734</span>   *         {@link CompletableFuture}.<a name="line.734"></a>
+<span class="sourceLineNo">735</span>   */<a name="line.735"></a>
+<span class="sourceLineNo">736</span>  CompletableFuture&lt;List&lt;TableCFs&gt;&gt; listReplicatedTableCFs();<a name="line.736"></a>
+<span class="sourceLineNo">737</span><a name="line.737"></a>
+<span class="sourceLineNo">738</span>  /**<a name="line.738"></a>
+<span class="sourceLineNo">739</span>   * Enable a table's replication switch.<a name="line.739"></a>
+<span class="sourceLineNo">740</span>   * @param tableName name of the table<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   */<a name="line.741"></a>
+<span class="sourceLineNo">742</span>  CompletableFuture&lt;Void&gt; enableTableReplication(TableName tableName);<a name="line.742"></a>
+<span class="sourceLineNo">743</span><a name="line.743"></a>
+<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
+<span class="sourceLineNo">745</span>   * Disable a table's replication switch.<a name="line.745"></a>
+<span class="sourceLineNo">746</span>   * @param tableName name of the table<a name="line.746"></a>
+<span class="sourceLineNo">747</span>   */<a name="line.747"></a>
+<span class="sourceLineNo">748</span>  CompletableFuture&lt;Void&gt; disableTableReplication(TableName tableName);<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>  /**<a name="line.750"></a>
+<span class="sourceLineNo">751</span>   * Take a snapshot for the given table. If the table is enabled, a FLUSH-type snapshot will be<a name="line.751"></a>
+<span class="sourceLineNo">752</span>   * taken. If the table is disabled, an offline snapshot is taken. Snapshots are taken<a name="line.752"></a>
+<span class="sourceLineNo">753</span>   * sequentially even when requested concurrently, across all tables. Snapshots are considered<a name="line.753"></a>
+<span class="sourceLineNo">754</span>   * unique based on &lt;b&gt;the name of the snapshot&lt;/b&gt;. Attempts to take a snapshot with the same<a name="line.754"></a>
+<span class="sourceLineNo">755</span>   * name (even a different type or with different parameters) will fail with a<a name="line.755"></a>
+<span class="sourceLineNo">756</span>   * {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException} indicating the duplicate<a name="line.756"></a>
+<span class="sourceLineNo">757</span>   * naming. Snapshot names follow the same naming constraints as tables in HBase. See<a name="line.757"></a>
+<span class="sourceLineNo">758</span>   * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.758"></a>
+<span class="sourceLineNo">759</span>   * @param snapshotName name of the snapshot to be created<a name="line.759"></a>
+<span class="sourceLineNo">760</span>   * @param tableName name of the table for which snapshot is created<a name="line.760"></a>
+<span class="sourceLineNo">761</span>   */<a name="line.761"></a>
+<span class="sourceLineNo">762</span>  default CompletableFuture&lt;Void&gt; snapshot(String snapshotName, TableName tableName) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    return snapshot(snapshotName, tableName, SnapshotType.FLUSH);<a name="line.763"></a>
+<span class="sourceLineNo">764</span>  }<a name="line.764"></a>
+<span class="sourceLineNo">765</span><a name="line.765"></a>
+<span class="sourceLineNo">766</span>  /**<a name="line.766"></a>
+<span class="sourceLineNo">767</span>   * Create typed snapshot of the table. Snapshots are considered unique based on &lt;b&gt;the name of the<a name="line.767"></a>
+<span class="sourceLineNo">768</span>   * snapshot&lt;/b&gt;. Snapshots are taken sequentially even when requested concurrently, across all<a name="line.768"></a>
+<span class="sourceLineNo">769</span>   * tables. Attempts to take a snapshot with the same name (even a different type or with<a name="line.769"></a>
+<span class="sourceLineNo">770</span>   * different parameters) will fail with a<a name="line.770"></a>
+<span class="sourceLineNo">771</span>   * {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException} indicating the duplicate<a name="line.771"></a>
+<span class="sourceLineNo">772</span>   * naming. Snapshot names follow the same naming constraints as tables in HBase. See<a name="line.772"></a>
+<span class="sourceLineNo">773</span>   * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.773"></a>
+<span class="sourceLineNo">774</span>   * @param snapshotName name to give the snapshot on the filesystem. Must be unique from all other<a name="line.774"></a>
+<span class="sourceLineNo">775</span>   *          snapshots stored on the cluster<a name="line.775"></a>
+<span class="sourceLineNo">776</span>   * @param tableName name of the table to snapshot<a name="line.776"></a>
+<span class="sourceLineNo">777</span>   * @param type type of snapshot to take<a name="line.777"></a>
+<span class="sourceLineNo">778</span>   */<a name="line.778"></a>
+<span class="sourceLineNo">779</span>  default CompletableFuture&lt;Void&gt; snapshot(String snapshotName, TableName tableName,<a name="line.779"></a>
+<span class="sourceLineNo">780</span>      SnapshotType type) {<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    return snapshot(new SnapshotDescription(snapshotName, tableName, type));<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  }<a name="line.782"></a>
+<span class="sourceLineNo">783</span><a name="line.783"></a>
+<span class="sourceLineNo">784</span>  /**<a name="line.784"></a>
+<span class="sourceLineNo">785</span>   * Take a snapshot and wait for the server to complete that snapshot asynchronously. Snapshots<a name="line.785"></a>
+<span class="sourceLineNo">786</span>   * are taken sequentially even when requested concurrently, across all tables. Snapshots are<a name="line.786"></a>
+<span class="sourceLineNo">787</span>   * considered unique based on &lt;b&gt;the name of the snapshot&lt;/b&gt;.<a name="line.787"></a>
+<span class="sourceLineNo">788</span>   * Attempts to take a snapshot with the same name (even a different type or with different<a name="line.788"></a>
+<span class="sourceLineNo">789</span>   * parameters) will fail with a {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException}<a name="line.789"></a>
+<span class="sourceLineNo">790</span>   * indicating the duplicate naming. Snapshot names follow the same naming constraints as tables in<a name="line.790"></a>
+<span class="sourceLineNo">791</span>   * HBase. See {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.791"></a>
+<span class="sourceLineNo">792</span>   * You should probably use {@link #snapshot(String, org.apache.hadoop.hbase.TableName)} unless you<a name="line.792"></a>
+<span class="sourceLineNo">793</span>   * are sure about the type of snapshot that you want to take.<a name="line.793"></a>
+<span class="sourceLineNo">794</span>   * @param snapshot snapshot to take<a name="line.794"></a>
+<span class="sourceLineNo">795</span>   */<a name="line.795"></a>
+<span class="sourceLineNo">796</span>  CompletableFuture&lt;Void&gt; snapshot(SnapshotDescription snapshot);<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>  /**<a name="line.798"></a>
+<span class="sourceLineNo">799</span>   * Check the current state of the passed snapshot. There are three possible states:<a name="line.799"></a>
+<span class="sourceLineNo">800</span>   * &lt;ol&gt;<a name="line.800"></a>
+<span class="sourceLineNo">801</span>   * &lt;li&gt;running - returns &lt;tt&gt;false&lt;/tt&gt;&lt;/li&gt;<a name="line.801"></a>
+<span class="sourceLineNo">802</span>   * &lt;li&gt;finished - returns &lt;tt&gt;true&lt;/tt&gt;&lt;/li&gt;<a name="line.802"></a>
+<span class="sourceLineNo">803</span>   * &lt;li&gt;finished with error - throws the exception that caused the snapshot to fail&lt;/li&gt;<a name="line.803"></a>
+<span class="sourceLineNo">804</span>   * &lt;/ol&gt;<a name="line.804"></a>
+<span class="sourceLineNo">805</span>   * The cluster only knows about the most recent snapshot. Therefore, if another snapshot has been<a name="line.805"></a>
+<span class="sourceLineNo">806</span>   * run/started since the snapshot you are checking, you will receive an<a name="line.806"></a>
+<span class="sourceLineNo">807</span>   * {@link org.apache.hadoop.hbase.snapshot.UnknownSnapshotException}.<a name="line.807"></a>
+<span class="sourceLineNo">808</span>   * @param snapshot description of the snapshot to check<a name="line.808"></a>
+<span class="sourceLineNo">809</span>   * @return &lt;tt&gt;true&lt;/tt&gt; if the snapshot is completed, &lt;tt&gt;false&lt;/tt&gt; if the snapshot is still<a name="line.809"></a>
+<span class="sourceLineNo">810</span>   *         running<a name="line.810"></a>
+<span class="sourceLineNo">811</span>   */<a name="line.811"></a>
+<span class="sourceLineNo">812</span>  CompletableFuture&lt;Boolean&gt; isSnapshotFinished(SnapshotDescription snapshot);<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>  /**<a name="line.814"></a>
+<span class="sourceLineNo">815</span>   * Restore the specified snapshot on the original table. (The table must be disabled) If the<a name="line.815"></a>
+<span class="sourceLineNo">816</span>   * "hbase.snapshot.restore.take.failsafe.snapshot" configuration property is set to true, a<a name="line.816"></a>
+<span class="sourceLineNo">817</span>   * snapshot of the current table is taken before executing the restore operation. In case of<a name="line.817"></a>
+<span class="sourceLineNo">818</span>   * restore failure, the failsafe snapshot will be restored. If the restore completes without<a name="line.818"></a>
+<span class="sourceLineNo">819</span>   * problem the failsafe snapshot is deleted.<a name="line.819"></a>
+<span class="sourceLineNo">820</span>   * @param snapshotName name of the snapshot to restore<a name="line.820"></a>
+<span class="sourceLineNo">821</span>   */<a name="line.821"></a>
+<span class="sourceLineNo">822</span>  CompletableFuture&lt;Void&gt; restoreSnapshot(String snapshotName);<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>  /**<a name="line.824"></a>
+<span class="sourceLineNo">825</span>   * Restore the specified snapshot on the original table. (The table must be disabled) If<a name="line.825"></a>
+<span class="sourceLineNo">826</span>   * 'takeFailSafeSnapshot' is set to true, a snapshot of the current table is taken before<a name="line.826"></a>
+<span class="sourceLineNo">827</span>   * executing the restore operation. In case of restore failure, the failsafe snapshot will be<a name="line.827"></a>
+<span class="sourceLineNo">828</span>   * restored. If the restore completes without problem the failsafe snapshot is deleted. The<a name="line.828"></a>
+<span class="sourceLineNo">829</span>   * failsafe snapshot name is configurable by using the property<a name="line.829"></a>
+<span class="sourceLineNo">830</span>   * "hbase.snapshot.restore.failsafe.name".<a name="line.830"></a>
+<span class="sourceLineNo">831</span>   * @param snapshotName name of the snapshot to restore<a name="line.831"></a>
+<span class="sourceLineNo">832</span>   * @param takeFailSafeSnapshot true if the failsafe snapshot should be taken<a name="line.832"></a>
+<span class="sourceLineNo">833</span>   */<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  default CompletableFuture&lt;Void&gt; restoreSnapshot(String snapshotName,<a name="line.834"></a>
+<span class="sourceLineNo">835</span>      boolean takeFailSafeSnapshot) {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>    return restoreSnapshot(snapshotName, takeFailSafeSnapshot, false);<a name="line.836"></a>
+<span class="sourceLineNo">837</span>  }<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span>  /**<a name="line.839"></a>
+<span class="sourceLineNo">840</span>   * Restore the specified snapshot on the original table. (The table must be disabled) If<a name="line.840"></a>
+<span class="sourceLineNo">841</span>   * 'takeFailSafeSnapshot' is set to true, a snapshot of the current table is taken before<a name="line.841"></a>
+<span class="sourceLineNo">842</span>   * executing the restore operation. In case of restore failure, the failsafe snapshot will be<a name="line.842"></a>
+<span class="sourceLineNo">843</span>   * restored. If the restore completes without problem the failsafe snapshot is deleted. The<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * failsafe snapshot name is configurable by using the property<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   * "hbase.snapshot.restore.failsafe.name".<a name="line.845"></a>
+<span class="sourceLineNo">846</span>   * @param snapshotName name of the snapshot to restore<a name="line.846"></a>
+<span class="sourceLineNo">847</span>   * @param takeFailSafeSnapshot true if the failsafe snapshot should be taken<a name="line.847"></a>
+<span class="sourceLineNo">848</span>   * @param restoreAcl &lt;code&gt;true&lt;/code&gt; to restore acl of snapshot<a name="line.848"></a>
+<span class="sourceLineNo">849</span>   */<a name="line.849"></a>
+<span class="sourceLineNo">850</span>  CompletableFuture&lt;Void&gt; restoreSnapshot(String snapshotName, boolean takeFailSafeSnapshot,<a name="line.850"></a>
+<span class="sourceLineNo">851</span>      boolean restoreAcl);<a name="line.851"></a>
+<span class="sourceLineNo">852</span><a name="line.852"></a>
+<span class="sourceLineNo">853</span>  /**<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   * Create a new table by cloning the snapshot content.<a name="line.854"></a>
+<span class="sourceLineNo">855</span>   * @param snapshotName name of the snapshot to be cloned<a name="line.855"></a>
+<span class="sourceLineNo">856</span>   * @param tableName name of the table where the snapshot will be restored<a name="line.856"></a>
+<span class="sourceLineNo">857</span>   */<a name="line.857"></a>
+<span class="sourceLineNo">858</span>  default CompletableFuture&lt;Void&gt; cloneSnapshot(String snapshotName, TableName tableName) {<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    return cloneSnapshot(snapshotName, tableName, false);<a name="line.859"></a>
+<span class="sourceLineNo">860</span>  }<a name="line.860"></a>
+<span class="sourceLineNo">861</span><a name="line.861"></a>
+<span class="sourceLineNo">862</span>  /**<a name="line.862"></a>
+<span class="sourceLineNo">863</span>   * Create a new table by cloning the snapshot content.<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * @param snapshotName name of the snapshot to be cloned<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   * @param tableName name of the table where the snapshot will be restored<a name="line.865"></a>
+<span class="sourceLineNo">866</span>   * @param restoreAcl &lt;code&gt;true&lt;/code&gt; to restore acl of snapshot<a name="line.866"></a>
+<span class="sourceLineNo">867</span>   */<a name="line.867"></a>
+<span class="sourceLineNo">868</span>  CompletableFuture&lt;Void&gt; cloneSnapshot(String snapshotName, TableName tableName,<a name="line.868"></a>
+<span class="sourceLineNo">869</span>      boolean restoreAcl);<a name="line.869"></a>
+<span class="sourceLineNo">870</span><a name="line.870"></a>
+<span class="sourceLineNo">871</span>  /**<a name="line.871"></a>
+<span class="sourceLineNo">872</span>   * List completed snapshots.<a name="line.872"></a>
+<span class="sourceLineNo">873</span>   * @return a list of snapshot descriptors for completed snapshots wrapped by a<a name="line.873"></a>
+<span class="sourceLineNo">874</span>   *         {@link CompletableFuture}<a name="line.874"></a>
+<span class="sourceLineNo">875</span>   */<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listSnapshots();<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>  /**<a name="line.878"></a>
+<span class="sourceLineNo">879</span>   * List all the completed snapshots matching the given pattern.<a name="line.879"></a>
+<span class="sourceLineNo">880</span>   * @param pattern The compiled regular expression to match against<a name="line.880"></a>
+<span class="sourceLineNo">881</span>   * @return - returns a List of SnapshotDescription wrapped by a {@link CompletableFuture}<a name="line.881"></a>
+<span class="sourceLineNo">882</span>   */<a name="line.882"></a>
+<span class="sourceLineNo">883</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listSnapshots(Pattern pattern);<a name="line.883"></a>
+<span class="sourceLineNo">884</span><a name="line.884"></a>
+<span class="sourceLineNo">885</span>  /**<a name="line.885"></a>
+<span class="sourceLineNo">886</span>   * List all the completed snapshots matching the given table name pattern.<a name="line.886"></a>
+<span class="sourceLineNo">887</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.887"></a>
+<span class="sourceLineNo">888</span>   * @return - returns a List of completed SnapshotDescription wrapped by a<a name="line.888"></a>
+<span class="sourceLineNo">889</span>   *         {@link CompletableFuture}<a name="line.889"></a>
+<span class="sourceLineNo">890</span>   */<a name="line.890"></a>
+<span class="sourceLineNo">891</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listTableSnapshots(Pattern tableNamePattern);<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>  /**<a name="line.893"></a>
+<span class="sourceLineNo">894</span>   * List all the completed snapshots matching the given table name regular expression and snapshot<a name="line.894"></a>
+<span class="sourceLineNo">895</span>   * name regular expression.<a name="line.895"></a>
+<span class="sourceLineNo">896</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.896"></a>
+<span class="sourceLineNo">897</span>   * @param snapshotNamePattern The compiled snapshot name regular expression to match against<a name="line.897"></a>
+<span class="sourceLineNo">898</span>   * @return - returns a List of completed SnapshotDescription wrapped by a<a name="line.898"></a>
+<span class="sourceLineNo">899</span>   *         {@link CompletableFuture}<a name="line.899"></a>
+<span class="sourceLineNo">900</span>   */<a name="line.900"></a>
+<span class="sourceLineNo">901</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listTableSnapshots(Pattern tableNamePattern,<a name="line.901"></a>
+<span class="sourceLineNo">902</span>      Pattern snapshotNamePattern);<a name="line.902"></a>
+<span class="sourceLineNo">903</span><a name="line.903"></a>
+<span class="sourceLineNo">904</span>  /**<a name="line.904"></a>
+<span class="sourceLineNo">905</span>   * Delete an existing snapshot.<a name="line.905"></a>
+<span class="sourceLineNo">906</span>   * @param snapshotName name of the snapshot<a name="line.906"></a>
+<span class="sourceLineNo">907</span>   */<a name="line.907"></a>
+<span class="sourceLineNo">908</span>  CompletableFuture&lt;Void&gt; deleteSnapshot(String snapshotName);<a name="line.908"></a>
+<span class="sourceLineNo">909</span><a name="line.909"></a>
+<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
+<span class="sourceLineNo">911</span>   * Delete all existing snapshots.<a name="line.911"></a>
+<span class="sourceLineNo">912</span>   */<a name="line.912"></a>
+<span class="sourceLineNo">913</span>  CompletableFuture&lt;Void&gt; deleteSnapshots();<a name="line.913"></a>
+<span class="sourceLineNo">914</span><a name="line.914"></a>
+<span class="sourceLineNo">915</span>  /**<a name="line.915"></a>
+<span class="sourceLineNo">916</span>   * Delete existing snapshots whose names match the pattern passed.<a name="line.916"></a>
+<span class="sourceLineNo">917</span>   * @param pattern pattern for names of the snapshot to match<a name="line.917"></a>
+<span class="sourceLineNo">918</span>   */<a name="line.918"></a>
+<span class="sourceLineNo">919</span>  CompletableFuture&lt;Void&gt; deleteSnapshots(Pattern pattern);<a name="line.919"></a>
+<span class="sourceLineNo">920</span><a name="line.920"></a>
+<span class="sourceLineNo">921</span>  /**<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * Delete all existing snapshots matching the given table name pattern.<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.923"></a>
+<span class="sourceLineNo">924</span>   */<a name="line.924"></a>
+<span class="sourceLineNo">925</span>  CompletableFuture&lt;Void&gt; deleteTableSnapshots(Pattern tableNamePattern);<a name="line.925"></a>
+<span class="sourceLineNo">926</span><a name="line.926"></a>
+<span class="sourceLineNo">927</span>  /**<a name="line.927"></a>
+<span class="sourceLineNo">928</span>   * Delete all existing snapshots matching the given table name regular expression and snapshot<a name="line.928"></a>
+<span class="sourceLineNo">929</span>   * name regular expression.<a name="line.929"></a>
+<span class="sourceLineNo">930</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.930"></a>
+<span class="sourceLineNo">931</span>   * @param snapshotNamePattern The compiled snapshot name regular expression to match against<a name="line.931"></a>
+<span class="sourceLineNo">932</span>   */<a name="line.932"></a>
+<span class="sourceLineNo">933</span>  CompletableFuture&lt;Void&gt; deleteTableSnapshots(Pattern tableNamePattern,<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      Pattern snapshotNamePattern);<a name="line.934"></a>
+<span class="sourceLineNo">935</span><a name="line.935"></a>
+<span class="sourceLineNo">936</span>  /**<a name="line.936"></a>
+<span class="sourceLineNo">937</span>   * Execute a distributed procedure on a cluster.<a name="line.937"></a>
+<span class="sourceLineNo">938</span>   * @param signature A distributed procedure is uniquely identified by its signature (default the<a name="line.938"></a>
+<span class="sourceLineNo">939</span>   *          root ZK node name of the procedure).<a name="line.939"></a>
+<span class="sourceLineNo">940</span>   * @param instance The instance name of the procedure. For some procedures, this parameter is<a name="line.940"></a>
+<span class="sourceLineNo">941</span>   *          optional.<a name="line.941"></a>
+<span class="sourceLineNo">942</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.942"></a>
+<span class="sourceLineNo">943</span>   */<a name="line.943"></a>
+<span class="sourceLineNo">944</span>  CompletableFuture&lt;Void&gt; execProcedure(String signature, String instance,<a name="line.944"></a>
+<span class="sourceLineNo">945</span>      Map&lt;String, String&gt; props);<a name="line.945"></a>
+<span class="sourceLineNo">946</span><a name="line.946"></a>
+<span class="sourceLineNo">947</span>  /**<a name="line.947"></a>
+<span class="sourceLineNo">948</span>   * Execute a distributed procedure on a cluster.<a name="line.948"></a>
+<span class="sourceLineNo">949</span>   * @param signature A distributed procedure is uniquely identified by its signature (default the<a name="line.949"></a>
+<span class="sourceLineNo">950</span>   *          root ZK node name of the procedure).<a name="line.950"></a>
+<span class="sourceLineNo">951</span>   * @param instance The instance name of the procedure. For some procedures, this parameter is<a name="line.951"></a>
+<span class="sourceLineNo">952</span>   *          optional.<a name="line.952"></a>
+<span class="sourceLineNo">953</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.953"></a>
+<span class="sourceLineNo">954</span>   * @return data returned after procedure execution. null if no return data.<a name="line.954"></a>
+<span class="sourceLineNo">955</span>   */<a name="line.955"></a>
+<span class="sourceLineNo">956</span>  CompletableFuture&lt;byte[]&gt; execProcedureWithReturn(String signature, String instance,<a name="line.956"></a>
+<span class="sourceLineNo">957</span>      Map&lt;String, String&gt; props);<a name="line.957"></a>
+<span class="sourceLineNo">958</span><a name="line.958"></a>
+<span class="sourceLineNo">959</span>  /**<a name="line.959"></a>
+<span class="sourceLineNo">960</span>   * Check the current state of the specified procedure. There are three possible states:<a name="line.960"></a>
+<span class="sourceLineNo">961</span>   * &lt;ol&gt;<a name="line.961"></a>
+<span class="sourceLineNo">962</span>   * &lt;li&gt;running - returns &lt;tt&gt;false&lt;/tt&gt;&lt;/li&gt;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>   * &lt;li&gt;finished - returns &lt;tt&gt;true&lt;/tt&gt;&lt;/li&gt;<a name="line.963"></a>
+<span class="sourceLineNo">964</span>   * &lt;li&gt;finished with error - throws the exception that caused the procedure to fail&lt;/li&gt;<a name="line.964"></a>
+<span class="sourceLineNo">965</span>   * &lt;/ol&gt;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>   * @param signature The signature that uniquely identifies a procedure<a name="line.966"></a>
+<span class="sourceLineNo">967</span>   * @param instance The instance name of the procedure<a name="line.967"></a>
+<span class="sourceLineNo">968</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.968"></a>
+<span class="sourceLineNo">969</span>   * @return true if the specified procedure is finished successfully, false if it is still running.<a name="line.969"></a>
+<span class="sourceLineNo">970</span>   *         The value is wrapped by {@link CompletableFuture}<a name="line.970"></a>
+<span class="sourceLineNo">971</span>   */<a name="line.971"></a>
+<span class="sourceLineNo">972</span>  CompletableFuture&lt;Boolean&gt; isProcedureFinished(String signature, String instance,<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      Map&lt;String, String&gt; props);<a name="line.973"></a>
+<span class="sourceLineNo">974</span><a name="line.974"></a>
+<span class="sourceLineNo">975</span>  /**<a name="line.975"></a>
+<span class="sourceLineNo">976</span>   * Abort a procedure<a name="line.976"></a>
+<span class="sourceLineNo">977</span>   * Do not use. Usually it is ignored but if not, it can do more damage than good. See hbck2.<a name="line.977"></a>
+<span class="sourceLineNo">978</span>   * @param procId ID of the procedure to abort<a name="line.978"></a>
+<span class="sourceLineNo">979</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.979"></a>
+<span class="sourceLineNo">980</span>   * @return true if aborted, false if procedure already completed or does not exist. the value is<a name="line.980"></a>
+<span class="sourceLineNo">981</span>   *         wrapped by {@link CompletableFuture}<a name="line.981"></a>
+<span class="sourceLineNo">982</span>   * @deprecated since 2.1.1 and will be removed in 4.0.0.<a name="line.982"></a>
+<span class="sourceLineNo">983</span>   * @see &lt;a href="https://issues.apache.org/jira/browse/HBASE-21223"&gt;HBASE-21223&lt;/a&gt;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>   */<a name="line.984"></a>
+<span class="sourceLineNo">985</span>  @Deprecated<a name="line.985"></a>
+<span class="sourceLineNo">986</span>  CompletableFuture&lt;Boolean&gt; abortProcedure(long procId, boolean mayInterruptIfRunning);<a name="line.986"></a>
+<span class="sourceLineNo">987</span><a name="line.987"></a>
+<span class="sourceLineNo">988</span>  /**<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * List procedures<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   * @return procedure list JSON wrapped by {@link CompletableFuture}<a name="line.990"></a>
+<span class="sourceLineNo">991</span>   */<a name="line.991"></a>
+<span class="sourceLineNo">992</span>  CompletableFuture&lt;String&gt; getProcedures();<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>  /**<a name="line.994"></a>
+<span class="sourceLineNo">995</span>   * List locks.<a name="line.995"></a>
+<span class="sourceLineNo">996</span>   * @return lock list JSON wrapped by {@link CompletableFuture}<a name="line.996"></a>
+<span class="sourceLineNo">997</span>   */<a name="line.997"></a>
+<span class="sourceLineNo">998</span>  CompletableFuture&lt;String&gt; getLocks();<a name="line.998"></a>
+<span class="sourceLineNo">999</span><a name="line.999"></a>
+<span class="sourceLineNo">1000</span>  /**<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>   * Mark region server(s) as decommissioned to prevent additional regions from getting<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>   * assigned to them. Optionally unload the regions on the servers. If there are multiple servers<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>   * to be decommissioned, decommissioning them at the same time can prevent wasteful region<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>   * movements. Region unloading is asynchronous.<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>   * @param servers The list of servers to decommission.<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>   * @param offload True to offload the regions from the decommissioned servers<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>   */<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>  CompletableFuture&lt;Void&gt; decommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span><a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  /**<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>   * List region servers marked as decommissioned, which can not be assigned regions.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>   * @return List of decommissioned region servers wrapped by {@link CompletableFuture}<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>  CompletableFuture&lt;List&lt;ServerName&gt;&gt; listDecommissionedRegionServers();<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>  /**<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>   * Remove decommission marker from a region server to allow regions assignments. Load regions onto<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>   * the server if a list of regions is given. Region loading is asynchronous.<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>   * @param server The server to recommission.<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>   * @param encodedRegionNames Regions to load onto the server.<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>   */<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>  CompletableFuture&lt;Void&gt; recommissionRegionServer(ServerName server,<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      List&lt;byte[]&gt; encodedRegionNames);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span><a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>  /**<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>   * @return cluster status wrapped by {@link CompletableFuture}<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>   */<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  CompletableFuture&lt;ClusterMetrics&gt; getClusterMetrics();<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span><a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>  /**<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>   * @return cluster status wrapped by {@link CompletableFuture}<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>   */<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>  CompletableFuture&lt;ClusterMetrics&gt; getClusterMetrics(EnumSet&lt;Option&gt; options);<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>  /**<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>   * @return current master server name wrapped by {@link CompletableFuture}<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>   */<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>  default CompletableFuture&lt;ServerName&gt; getMaster() {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>    return getClusterMetrics(EnumSet.of(Option.MASTER)).thenApply(ClusterMetrics::getMasterName);<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  }<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span><a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  /**<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>   * @return current backup master list wrapped by {@link CompletableFuture}<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>   */<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>  default CompletableFuture&lt;Collection&lt;ServerName&gt;&gt; getBackupMasters() {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>    return getClusterMetrics(EnumSet.of(Option.BACKUP_MASTERS))<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>      .thenApply(ClusterMetrics::getBackupMasterNames);<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>  }<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span><a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>  /**<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>   * @return current live region servers list wrapped by {@link CompletableFuture}<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>   */<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>  default CompletableFuture&lt;Collection&lt;ServerName&gt;&gt; getRegionServers() {<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    return getClusterMetrics(EnumSet.of(Option.SERVERS_NAME))<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>        .thenApply(ClusterMetrics::getServersName);<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>  }<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>  /**<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>   * @return a list of master coprocessors wrapped by {@link CompletableFuture}<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>   */<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>  default CompletableFuture&lt;List&lt;String&gt;&gt; getMasterCoprocessorNames() {<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span>    return getClusterMetrics(EnumSet.of(Option.MASTER_COPROCESSORS))<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>        .thenApply(ClusterMetrics::getMasterCoprocessorNames);<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>  }<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span><a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>  /**<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>   * Get the info port of the current master if one is available.<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>   * @return master info port<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>   */<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>  default CompletableFuture&lt;Integer&gt; getMasterInfoPort() {<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>    return getClusterMetrics(EnumSet.of(Option.MASTER_INFO_PORT)).thenApply(<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      ClusterMetrics::getMasterInfoPort);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span>  }<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span><a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>  /**<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>   * Shuts down the HBase cluster.<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>   */<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>  CompletableFuture&lt;Void&gt; shutdown();<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span><a name="line.1079"></a>
+<span class="sourceLineNo">1080</span>  /**<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>   * Shuts down the current HBase master only.<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>   */<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>  CompletableFuture&lt;Void&gt; stopMaster();<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span><a name="line.1084"></a>
+<span class="sourceLineNo">1085</span>  /**<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>   * Stop the designated regionserver.<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>   * @param serverName<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>   */<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span>  CompletableFuture&lt;Void&gt; stopRegionServer(ServerName serverName);<a name="line.1089"></a>
+<span class="sourceLineNo">1090</span><a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>  /**<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span>   * Update the configuration and trigger an online config change on the regionserver.<a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>   * @param serverName : The server whose config needs to be updated.<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>   */<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>  CompletableFuture&lt;Void&gt; updateConfiguration(ServerName serverName);<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span><a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>  /**<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>   * Update the configuration and trigger an online config change on all the masters and<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>   * regionservers.<a name="line.1099"></a>
+<span class="sourceLineNo">1100</span>   */<a name="line.1100"></a>
+<span class="sourceLineNo">1101</span>  CompletableFuture&lt;Void&gt; updateConfiguration();<a name="line.1101"></a>
+<span class="sourceLineNo">1102</span><a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>  /**<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span>   * Roll the log writer. I.e. for filesystem based write ahead logs, start writing to a new file.<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>   * &lt;p&gt;<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>   * When the returned CompletableFuture is done, it only means the rollWALWriter request was sent<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>   * to the region server and may need some time to finish the rollWALWriter operation. As a side<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>   * effect of this call, the named region server may schedule store flushes at the request of the<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>   * wal.<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>   * @param serverName The servername of the region server.<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>   */<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>  CompletableFuture&lt;Void&gt; rollWALWriter(ServerName serverName);<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span><a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>  /**<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>   * Clear compacting queues on a region server.<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>   * @param serverName<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>   * @param queues the set of queue name<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>   */<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>  CompletableFuture&lt;Void&gt; clearCompactionQueues(ServerName serverName, Set&lt;String&gt; queues);<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span><a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>  /**<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>   * Get a list of {@link RegionMetrics} of all regions hosted on a region seerver.<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>   * @param serverName<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   * @return a list of {@link RegionMetrics} wrapped by {@link CompletableFuture}<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>   */<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>  CompletableFuture&lt;List&lt;RegionMetrics&gt;&gt; getRegionMetrics(ServerName serverName);<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span><a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>   * Get a list of {@link RegionMetrics} of all regions hosted on a region seerver for a table.<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>   * @param serverName<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>   * @param tableName<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>   * @return a list of {@link RegionMetrics} wrapped by {@link CompletableFuture}<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>   */<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  CompletableFuture&lt;List&lt;RegionMetrics&gt;&gt; getRegionMetrics(ServerName serverName,<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>    TableName tableName);<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  /**<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>   * Check whether master is in maintenance mode<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>   * @return true if master is in maintenance mode, false otherwise. The return value will be<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>   *         wrapped by a {@link CompletableFuture}<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>   */<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>  CompletableFuture&lt;Boolean&gt; isMasterInMaintenanceMode();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span><a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>  /**<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>   * Get the current compaction state of a table. It could be in a major compaction, a minor<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>   * compaction, both, or none.<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>   * @param tableName table to examine<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>   * @return the current compaction state wrapped by a {@link CompletableFuture}<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>   */<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>  default CompletableFuture&lt;CompactionState&gt; getCompactionState(TableName tableName) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>    return getCompactionState(tableName, CompactType.NORMAL);<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>  }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span><a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>  /**<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>   * Get the current compaction state of a table. It could be in a major compaction, a minor<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>   * compaction, both, or none.<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>   * @param tableName table to examine<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>   * @param compactType {@link org.apache.hadoop.hbase.client.CompactType}<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * @return the current compaction state wrapped by a {@link CompletableFuture}<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   */<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>  CompletableFuture&lt;CompactionState&gt; getCompactionState(TableName tableName,<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>      CompactType compactType);<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span><a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>  /**<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>   * Get the current compaction state of region. It could be in a major compaction, a minor<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>   * compaction, both, or none.<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>   * @param regionName region to examine<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>   * @return the current compaction state wrapped by a {@link CompletableFuture}<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>   */<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>  CompletableFuture&lt;CompactionState&gt; getCompactionStateForRegion(byte[] regionName);<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span><a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>  /**<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   * Get the timestamp of the last major compaction for the passed table.<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>   * &lt;p&gt;<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>   * The timestamp of the oldest HFile resulting from a major compaction of that table, or not<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>   * present if no such HFile could be found.<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>   * @param tableName table to examine<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * @return the last major compaction timestamp wrapped by a {@link CompletableFuture}<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>  CompletableFuture&lt;Optional&lt;Long&gt;&gt; getLastMajorCompactionTimestamp(TableName tableName);<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span><a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>  /**<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>   * Get the timestamp of the last major compaction for the passed region.<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span>   * &lt;p&gt;<a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>   * The timestamp of the oldest HFile resulting from a major compaction of that region, or not<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>   * present if no such HFile could be found.<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>   * @param regionName region to examine<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>   * @return the last major compaction timestamp wrapped by a {@link CompletableFuture}<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   */<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>  CompletableFuture&lt;Optional&lt;Long&gt;&gt; getLastMajorCompactionTimestampForRegion(byte[] regionName);<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span><a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>   * @return the list of supported security capabilities. The return value will be wrapped by a<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   *         {@link CompletableFuture}.<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>   */<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>  CompletableFuture&lt;List&lt;SecurityCapability&gt;&gt; getSecurityCapabilities();<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span><a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>  /**<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>   * Turn the load balancer on or off.<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>   * @param on Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>   * @return Previous balancer value wrapped by a {@link CompletableFuture}.<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>   */<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>  default CompletableFuture&lt;Boolean&gt; balancerSwitch(boolean on) {<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>    return balancerSwitch(on, false);<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>  }<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span><a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>  /**<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>   * Turn the load balancer on or off.<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span>   * &lt;p/&gt;<a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>   * Notice that, the method itself is always non-blocking, which means it will always return<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>   * immediately. The {@code drainRITs} parameter only effects when will we complete the returned<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>   * {@link CompletableFuture}.<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>   * @param on Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>   * @param drainRITs If &lt;code&gt;true&lt;/code&gt;, it waits until current balance() call, if outstanding,<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>   *          to return.<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>   * @return Previous balancer value wrapped by a {@link CompletableFuture}.<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>   */<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span>  CompletableFuture&lt;Boolean&gt; balancerSwitch(boolean on, boolean drainRITs);<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span><a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>  /**<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>   * Invoke the balancer. Will run the balancer and if regions to move, it will go ahead and do the<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>   * reassignments. Can NOT run for various reasons. Check logs.<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>   * @return True if balancer ran, false otherwise. The return value will be wrapped by a<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>   *         {@link CompletableFuture}.<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>   */<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>  default CompletableFuture&lt;Boolean&gt; balance() {<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>    return balance(false);<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>  }<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span><a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>  /**<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   * Invoke the balancer. Will run the balancer and if regions to move, it will go ahead and do the<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>   * reassignments. If there is region in transition, force parameter of true would still run<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>   * balancer. Can *not* run for other reasons. Check logs.<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>   * @param forcible whether we should force balance even if there is region in transition.<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>   * @return True if balancer ran, false otherwise. The return value will be wrapped by a<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   *         {@link CompletableFuture}.<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>   */<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>  CompletableFuture&lt;Boolean&gt; balance(boolean forcible);<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span><a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>  /**<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>   * Query the current state of the balancer.<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>   * @return true if the balance switch is on, false otherwise. The return value will be wrapped by a<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   *         {@link CompletableFuture}.<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   */<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>  CompletableFuture&lt;Boolean&gt; isBalancerEnabled();<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span><a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>  /**<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>   * Set region normalizer on/off.<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>   * @param on whether normalizer should be on or off<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>   * @return Previous normalizer value wrapped by a {@link CompletableFuture}<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>   */<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>  CompletableFuture&lt;Boolean&gt; normalizerSwitch(boolean on);<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span><a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>  /**<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>   * Query the current state of the region normalizer<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>   * @return true if region normalizer is on, false otherwise. The return value will be wrapped by a<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   *         {@link CompletableFuture}<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>   */<a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>  CompletableFuture&lt;Boolean&gt; isNormalizerEnabled();<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span><a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>  /**<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>   * Invoke region normalizer. Can NOT run for various reasons. Check logs.<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>   * @return true if region normalizer ran, false otherwise. The return value will be wrapped by a<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span>   *         {@link CompletableFuture}<a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>   */<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>  CompletableFuture&lt;Boolean&gt; normalize();<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span><a name="line.1267"></a>
+<span class="sourceLineNo">1268</span>  /**<a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>   * Turn the cleaner chore on/off.<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>   * @param on<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>   * @return Previous cleaner state wrapped by a {@link CompletableFuture}<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>   */<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>  CompletableFuture&lt;Boolean&gt; cleanerChoreSwitch(boolean on);<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span><a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>  /**<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>   * Query the current state of the cleaner chore.<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>   * @return true if cleaner chore is on, false otherwise. The return value will be wrapped by<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>   *         a {@link CompletableFuture}<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>   */<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>  CompletableFuture&lt;Boolean&gt; isCleanerChoreEnabled();<a name="line.1280"></a>
+<span class="sourceLineNo">1281</span><a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>  /**<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   * Ask for cleaner chore to run.<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>   * @return true if cleaner chore ran, false otherwise. The return value will be wrapped by a<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>   *         {@link CompletableFuture}<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>   */<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span>  CompletableFuture&lt;Boolean&gt; runCleanerChore();<a name="line.1287"></a>
+<span class="sourceLineNo">1288</span><a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  /**<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>   * Turn the catalog janitor on/off.<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>   * @param on<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>   * @return the previous state wrapped by a {@link CompletableFuture}<a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>   */<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  CompletableFuture&lt;Boolean&gt; catalogJanitorSwitch(boolean on);<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span><a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  /**<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span>   * Query on the catalog janitor state.<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>   * @return true if the catalog janitor is on, false otherwise. The return value will be<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>   *         wrapped by a {@link CompletableFuture}<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>   */<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  CompletableFuture&lt;Boolean&gt; isCatalogJanitorEnabled();<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  /**<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>   * Ask for a scan of the catalog table.<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>   * @return the number of entries cleaned. The return value will be wrapped by a<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>   *         {@link CompletableFuture}<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   */<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  CompletableFuture&lt;Integer&gt; runCatalogJanitor();<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span><a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>  /**<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   * Execute the given coprocessor call on the master.<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>   * &lt;p&gt;<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>   * The {@code stubMaker} is just a delegation to the {@code newStub} call. Usually it is only a<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>   * one line lambda expression, like:<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>   *<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>   * &lt;pre&gt;<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>   * &lt;code&gt;<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>   * channel -&gt; xxxService.newStub(channel)<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   * &lt;/code&gt;<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>   * &lt;/pre&gt;<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>   * @param stubMaker a delegation to the actual {@code newStub} call.<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>   * @param callable a delegation to the actual protobuf rpc call. See the comment of<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>   *          {@link ServiceCaller} for more details.<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>   * @param &lt;S&gt; the type of the asynchronous stub<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>   * @param &lt;R&gt; the type of the return value<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>   * @return the return value of the protobuf rpc call, wrapped by a {@link CompletableFuture}.<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>   * @see ServiceCaller<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>   */<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>  &lt;S, R&gt; CompletableFuture&lt;R&gt; coprocessorService(Function&lt;RpcChannel, S&gt; stubMaker,<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>      ServiceCaller&lt;S, R&gt; callable);<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span><a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>  /**<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>   * Execute the given coprocessor call on the given region server.<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>   * &lt;p&gt;<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>   * The {@code stubMaker} is just a delegation to the {@code newStub} call. Usually it is only a<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>   * one line lambda expression, like:<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>   *<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>   * &lt;pre&gt;<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>   * &lt;code&gt;<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>   * channel -&gt; xxxService.newStub(channel)<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>   * &lt;/code&gt;<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>   * &lt;/pre&gt;<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>   * @param stubMaker a delegation to the actual {@code newStub} call.<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>   * @param callable a delegation to the actual protobuf rpc call. See the comment of<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>   *          {@link ServiceCaller} for more details.<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>   * @param serverName the given region server<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>   * @param &lt;S&gt; the type of the asynchronous stub<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span>   * @param &lt;R&gt; the type of the return value<a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>   * @return the return value of the protobuf rpc call, wrapped by a {@link CompletableFuture}.<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>   * @see ServiceCaller<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>   */<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>  &lt;S, R&gt; CompletableFuture&lt;R&gt; coprocessorService(Function&lt;RpcChannel, S&gt; stubMaker,<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    ServiceCaller&lt;S, R&gt; callable, ServerName serverName);<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span><a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>  /**<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>   * List all the dead region servers.<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span>   */<a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>  default CompletableFuture&lt;List&lt;ServerName&gt;&gt; listDeadServers() {<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>    return this.getClusterMetrics(EnumSet.of(Option.DEAD_SERVERS))<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>        .thenApply(ClusterMetrics::getDeadServerNames);<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>  }<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span><a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>  /**<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>   * Clear dead region servers from master.<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>   * @param servers list of dead region servers.<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>   * @return - returns a list of servers that not cleared wrapped by a {@link CompletableFuture}.<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>   */<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span>  CompletableFuture&lt;List&lt;ServerName&gt;&gt; clearDeadServers(final List&lt;ServerName&gt; servers);<a name="line.1368"></a>
+<span class="sourceLineNo">1369</span><a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>  /**<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>   * Clear all the blocks corresponding to this table from BlockCache. For expert-admins. Calling<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>   * this API will drop all the cached blocks specific to a table from BlockCache. This can<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>   * significantly impact the query performance as the subsequent queries will have to retrieve the<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span>   * blocks from underlying filesystem.<a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>   * @param tableName table to clear block cache<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>   * @return CacheEvictionStats related to the eviction wrapped by a {@link CompletableFuture}.<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>   */<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>  CompletableFuture&lt;CacheEvictionStats&gt; clearBlockCache(final TableName tableName);<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span><a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>  /**<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>   * Create a new table by cloning the existent table schema.<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>   *<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>   * @param tableName name of the table to be cloned<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>   * @param newTableName name of the new table where the table will be created<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>   * @param preserveSplits True if the splits should be preserved<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>   */<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>  CompletableFuture&lt;Void&gt; cloneTableSchema(final TableName tableName,<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span>      final TableName newTableName, final boolean preserveSplits);<a name="line.1388"></a>
+<span class="sourceLineNo">1389</span><a name="line.1389"></a>
+<span class="sourceLineNo">1390</span>  /**<a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>   * Turn the compaction on or off. Disabling compactions will also interrupt any currently ongoing<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>   * compactions. This state is ephemeral. The setting will be lost on restart. Compaction<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>   * can also be enabled/disabled by modifying configuration hbase.regionserver.compaction.enabled<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span>   * in hbase-site.xml.<a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>   *<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>   * @param switchState     Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>   * @param serverNamesList list of region servers.<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>   * @return Previous compaction states for region servers<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>   */<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>  CompletableFuture&lt;Map&lt;ServerName, Boolean&gt;&gt; compactionSwitch(boolean switchState,<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      List&lt;String&gt; serverNamesList);<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span><a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>  /**<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>   * Switch the rpc throttle enabled state.<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>   * @param enable Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>   * @return Previous rpc throttle enabled value<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>   */<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>  CompletableFuture&lt;Boolean&gt; switchRpcThrottle(boolean enable);<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span><a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  /**<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>   * Get if the rpc throttle is enabled.<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>   * @return True if rpc throttle is enabled<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>   */<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  CompletableFuture&lt;Boolean&gt; isRpcThrottleEnabled();<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span><a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  /**<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>   * Switch the exceed throttle quota. If enabled, user/table/namespace throttle quota<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>   * can be exceeded if region server has availble quota.<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>   * @param enable Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>   * @return Previous exceed throttle enabled value<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>   */<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>  CompletableFuture&lt;Boolean&gt; exceedThrottleQuotaSwitch(boolean enable);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span><a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>  /**<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>   * Fetches the table sizes on the filesystem as tracked by the HBase Master.<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>   */<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>  CompletableFuture&lt;Map&lt;TableName, Long&gt;&gt; getSpaceQuotaTableSizes();<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span><a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  /**<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>   * Fetches the observed {@link SpaceQuotaSnapshotView}s observed by a RegionServer.<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>   */<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  CompletableFuture&lt;? extends Map&lt;TableName, ? extends SpaceQuotaSnapshotView&gt;&gt;<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>      getRegionServerSpaceQuotaSnapshots(ServerName serverName);<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span><a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>  /**<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>   * Returns the Master's view of a quota on the given {@code namespace} or null if the Master has<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>   * no quota information on that namespace.<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>   */<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>  CompletableFuture&lt;? extends SpaceQuotaSnapshotView&gt;<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>      getCurrentSpaceQuotaSnapshot(String namespace);<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span><a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>  /**<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>   * Returns the Master's view of a quota on the given {@code tableName} or null if the Master has<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>   * no quota information on that table.<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>   */<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>  CompletableFuture&lt;? extends SpaceQuotaSnapshotView&gt; getCurrentSpaceQuotaSnapshot(<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>      TableName tableName);<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span><a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>  /**<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>   * Grants user specific permissions<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>   * @param userPermission user name and the specific permission<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>   * @param mergeExistingPermissions If set to false, later granted permissions will override<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>   *          previous granted permissions. otherwise, it'll merge with previous granted<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>   *          permissions.<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>   */<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  CompletableFuture&lt;Void&gt; grant(UserPermission userPermission, boolean mergeExistingPermissions);<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span><a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  /**<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>   * Revokes user specific permissions<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>   * @param userPermission user name and the specific permission<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   */<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>  CompletableFuture&lt;Void&gt; revoke(UserPermission userPermission);<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span><a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>  /**<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * Get the global/namespace/table permissions for user<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   * @param getUserPermissionsRequest A request contains which user, global, namespace or table<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   *          permissions needed<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * @return The user and permission list<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   */<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>  CompletableFuture&lt;List&lt;UserPermission&gt;&gt;<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      getUserPermissions(GetUserPermissionsRequest getUserPermissionsRequest);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span><a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>  /**<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * Check if the user has specific permissions<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   * @param userName the user name<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>   * @param permissions the specific permission list<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>   * @return True if user has the specific permissions<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>   */<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>  CompletableFuture&lt;List&lt;Boolean&gt;&gt; hasUserPermissions(String userName,<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>      List&lt;Permission&gt; permissions);<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /**<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>   * Check if call user has specific permissions<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>   * @param permissions the specific permission list<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>   * @return True if user has the specific permissions<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>   */<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  default CompletableFuture&lt;List&lt;Boolean&gt;&gt; hasUserPermissions(List&lt;Permission&gt; permissions) {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>    return hasUserPermissions(null, permissions);<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>  }<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span><a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>   * Turn on or off the auto snapshot cleanup based on TTL.<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>   * &lt;p/&gt;<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>   * Notice that, the method itself is always non-blocking, which means it will always return<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * immediately. The {@code sync} parameter only effects when will we complete the returned<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * {@link CompletableFuture}.<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>   * @param on Set to &lt;code&gt;true&lt;/code&gt; to enable, &lt;code&gt;false&lt;/code&gt; to disable.<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>   * @param sync If &lt;code&gt;true&lt;/code&gt;, it waits until current snapshot cleanup is completed,<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>   *   if outstanding.<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * @return Previous auto snapshot cleanup value wrapped by a {@link CompletableFuture}.<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   */<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>  CompletableFuture&lt;Boolean&gt; snapshotCleanupSwitch(boolean on, boolean sync);<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span><a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>  /**<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   * Query the current state of the auto snapshot cleanup based on TTL.<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   *<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return true if the auto snapshot cleanup is enabled, false otherwise.<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   *   The return value will be wrapped by a {@link CompletableFuture}.<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   */<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>  CompletableFuture&lt;Boolean&gt; isSnapshotCleanupEnabled();<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span><a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>  /**<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * Retrieves online slow RPC logs from the provided list of<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * RegionServers<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   *<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>   * @param serverNames Server names to get slowlog responses from<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>   * @param slowLogQueryFilter filter to be used if provided<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>   * @return Online slowlog response list. The return value wrapped by a {@link CompletableFuture}<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>   */<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>  CompletableFuture&lt;List&lt;SlowLogRecord&gt;&gt; getSlowLogResponses(final Set&lt;ServerName&gt; serverNames,<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>      final SlowLogQueryFilter slowLogQueryFilter);<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>  /**<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>   * Clears online slow RPC logs from the provided list of<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>   * RegionServers<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>   *<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>   * @param serverNames Set of Server names to clean slowlog responses from<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>   * @return List of booleans representing if online slowlog response buffer is cleaned<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>   *   from each RegionServer. The return value wrapped by a {@link CompletableFuture}<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>   */<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  CompletableFuture&lt;List&lt;Boolean&gt;&gt; clearSlowLogResponses(final Set&lt;ServerName&gt; serverNames);<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Creates a new RegionServer group with the given name<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   * @param groupName the name of the group<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>   * @throws IOException if a remote or network exception occurs<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>   */<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>  CompletableFuture&lt;Void&gt; addRSGroup(String groupName);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span><a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>  /**<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>   * Get group info for the given group name<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * @param groupName the group name<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * @return group info<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @throws IOException if a remote or network exception occurs<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  CompletableFuture&lt;RSGroupInfo&gt; getRSGroup(String groupName);<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>  /**<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>   * Get group info for the given hostPort<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>   * @param hostPort HostPort to get RSGroupInfo for<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>   * @throws IOException if a remote or network exception occurs<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>   */<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>  CompletableFuture&lt;RSGroupInfo&gt; getRSGroup(Address hostPort);<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span><a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>  /**<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>   * Get group info for the given table<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>   * @param tableName table name to get RSGroupInfo for<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>   * @throws IOException if a remote or network exception occurs<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>   */<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>  CompletableFuture&lt;RSGroupInfo&gt; getRSGroup(TableName tableName);<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span><a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>  /**<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>   * Lists current set of RegionServer groups<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>   * @throws IOException if a remote or network exception occurs<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>   */<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>  CompletableFuture&lt;List&lt;RSGroupInfo&gt;&gt; listRSGroups();<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span><a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>  /**<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>   * Get all tables in this RegionServer group.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>   * @param groupName the group name<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>   * @throws IOException if a remote or network exception occurs<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>   * @see #getConfiguredNamespacesAndTablesInRSGroup(String)<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>   */<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>  CompletableFuture&lt;List&lt;TableName&gt;&gt; listTablesInRSGroup(String groupName);<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span><a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>  /**<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>   * Get the namespaces and tables which have this RegionServer group in descriptor.<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>   * &lt;p/&gt;<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>   * The difference between this method and {@link #listTablesInRSGroup(String)} is that, this<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>   * method will not include the table which is actually in this RegionServr group but without the<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>   * RegionServer group configuration in its {@link TableDescriptor}. For example, we have a group<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>   * 'A', and we make namespace 'nsA' in this group, then all the tables under this namespace will<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>   * in the group 'A', but this method will not return these tables but only the namespace 'nsA',<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>   * while the {@link #listTablesInRSGroup(String)} will return all these tables.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>   * @param groupName the group name<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>   * @throws IOException if a remote or network exception occurs<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>   * @see #listTablesInRSGroup(String)<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>   */<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>  CompletableFuture&lt;Pair&lt;List&lt;String&gt;, List&lt;TableName&gt;&gt;&gt;<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>    getConfiguredNamespacesAndTablesInRSGroup(String groupName);<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span><a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>  /**<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>   * Remove RegionServer group associated with the given name<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>   * @param groupName the group name<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>   * @throws IOException if a remote or network exception occurs<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>   */<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>  CompletableFuture&lt;Void&gt; removeRSGroup(String groupName);<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>  /**<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>   * Remove decommissioned servers from group<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>   *  1. Sometimes we may find the server aborted due to some hardware failure and we must offline<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>   *     the server for repairing. Or we need to move some servers to join other clusters.<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>   *     So we need to remove these servers from the group.<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>   *  2. Dead/recovering/live servers will be disallowed.<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>   * @param servers set of servers to remove<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>   * @throws IOException if a remote or network exception occurs<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>   */<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>  CompletableFuture&lt;Void&gt; removeServersFromRSGroup(Set&lt;Address&gt; servers);<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span><a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>  /**<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>   * Move given set of servers to the specified target RegionServer group<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>   * @param servers set of servers to move<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>   * @param groupName the group to move servers to<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>   * @throws IOException if a remote or network exception occurs<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>   */<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>  CompletableFuture&lt;Void&gt; moveServersToRSGroup(Set&lt;Address&gt; servers, String groupName);<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span><a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>  /**<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>   * Set the RegionServer group for tables<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>   * @param tables tables to set group for<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>   * @param groupName group name for tables<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>   * @throws IOException if a remote or network exception occurs<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>   */<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>  CompletableFuture&lt;Void&gt; setRSGroup(Set&lt;TableName&gt; tables, String groupName);<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span><a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>  /**<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>   * Balance regions in the given RegionServer group<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>   * @param groupName the group name<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>   * @return boolean Whether balance ran or not<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>   * @throws IOException if a remote or network exception occurs<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>   */<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>  CompletableFuture&lt;Boolean&gt; balanceRSGroup(String groupName);<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>}<a name="line.1634"></a>
 
 
 
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html b/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html
index 5af44f7..12e5439 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html
@@ -29,20 +29,20 @@
 <span class="sourceLineNo">021</span>import static org.apache.hadoop.hbase.client.ConnectionUtils.allOf;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import static org.apache.hadoop.hbase.client.ConnectionUtils.toCheckExistenceOnly;<a name="line.22"></a>
 <span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import com.google.protobuf.RpcChannel;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.List;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.concurrent.CompletableFuture;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.concurrent.TimeUnit;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.function.Function;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.conf.Configuration;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.CompareOperator;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.TableName;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.filter.Filter;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.io.TimeRange;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.37"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.concurrent.CompletableFuture;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.concurrent.TimeUnit;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.function.Function;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.conf.Configuration;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.CompareOperator;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.TableName;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.filter.Filter;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.io.TimeRange;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel;<a name="line.37"></a>
 <span class="sourceLineNo">038</span><a name="line.38"></a>
 <span class="sourceLineNo">039</span>/**<a name="line.39"></a>
 <span class="sourceLineNo">040</span> * The interface for asynchronous version of Table. Obtain an instance from a<a name="line.40"></a>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncTable.html b/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncTable.html
index 5af44f7..12e5439 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncTable.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/AsyncTable.html
@@ -29,20 +29,20 @@
 <span class="sourceLineNo">021</span>import static org.apache.hadoop.hbase.client.ConnectionUtils.allOf;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import static org.apache.hadoop.hbase.client.ConnectionUtils.toCheckExistenceOnly;<a name="line.22"></a>
 <span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import com.google.protobuf.RpcChannel;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.List;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.concurrent.CompletableFuture;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.concurrent.TimeUnit;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.function.Function;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.conf.Configuration;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.CompareOperator;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.TableName;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.filter.Filter;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.io.TimeRange;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.37"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.concurrent.CompletableFuture;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.concurrent.TimeUnit;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.function.Function;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.conf.Configuration;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.CompareOperator;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.TableName;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.filter.Filter;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.io.TimeRange;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hbase.thirdparty.com.google.protobuf.RpcChannel;<a name="line.37"></a>
 <span class="sourceLineNo">038</span><a name="line.38"></a>
 <span class="sourceLineNo">039</span>/**<a name="line.39"></a>
 <span class="sourceLineNo">040</span> * The interface for asynchronous version of Table. Obtain an instance from a<a name="line.40"></a>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/Mutation.html b/apidocs/src-html/org/apache/hadoop/hbase/client/Mutation.html
index 61bba58..b8000c3 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/Mutation.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/Mutation.html
@@ -55,1010 +55,1011 @@
 <span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.Tag;<a name="line.47"></a>
 <span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.48"></a>
 <span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.io.HeapSize;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.security.access.AccessControlConstants;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.security.access.AccessControlUtil;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.security.visibility.CellVisibility;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.security.visibility.VisibilityConstants;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.util.ClassSize;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteArrayDataInput;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteArrayDataOutput;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>@InterfaceAudience.Public<a name="line.68"></a>
-<span class="sourceLineNo">069</span>public abstract class Mutation extends OperationWithAttributes implements Row, CellScannable,<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    HeapSize {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  public static final long MUTATION_OVERHEAD = ClassSize.align(<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      // This<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      ClassSize.OBJECT +<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      // row + OperationWithAttributes.attributes<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      2 * ClassSize.REFERENCE +<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      // Timestamp<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      1 * Bytes.SIZEOF_LONG +<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      // durability<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      ClassSize.REFERENCE +<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      // familyMap<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      ClassSize.REFERENCE +<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      // familyMap<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      ClassSize.TREEMAP +<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      // priority<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      ClassSize.INTEGER<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  );<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>  /**<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   * The attribute for storing the list of clusters that have consumed the change.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  private static final String CONSUMED_CLUSTER_IDS = "_cs.id";<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  /**<a name="line.93"></a>
-<span class="sourceLineNo">094</span>   * The attribute for storing TTL for the result of the mutation.<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  private static final String OP_ATTRIBUTE_TTL = "_ttl";<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private static final String RETURN_RESULTS = "_rr_";<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>  // TODO: row should be final<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  protected byte [] row = null;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  protected long ts = HConstants.LATEST_TIMESTAMP;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  protected Durability durability = Durability.USE_DEFAULT;<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  // TODO: familyMap should be final<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  // A Map sorted by column family.<a name="line.106"></a>
-<span class="sourceLineNo">107</span>  protected NavigableMap&lt;byte [], List&lt;Cell&gt;&gt; familyMap;<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>  /**<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   * empty construction.<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * We need this empty construction to keep binary compatibility.<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   */<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  protected Mutation() {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    this.familyMap = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>  protected Mutation(Mutation clone) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    super(clone);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    this.row = clone.getRow();<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    this.ts = clone.getTimestamp();<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    this.familyMap = clone.getFamilyCellMap().entrySet().stream().<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      collect(Collectors.toMap(e -&gt; e.getKey(), e -&gt; new ArrayList&lt;&gt;(e.getValue()), (k, v) -&gt; {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        throw new RuntimeException("collisions!!!");<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      }, () -&gt; new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR)));<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  /**<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * Construct the mutation with user defined data.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   * @param row row. CAN'T be null<a name="line.129"></a>
-<span class="sourceLineNo">130</span>   * @param ts timestamp<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * @param familyMap the map to collect all cells internally. CAN'T be null<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  protected Mutation(byte[] row, long ts, NavigableMap&lt;byte [], List&lt;Cell&gt;&gt; familyMap) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    this.row = Preconditions.checkNotNull(row);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    if (row.length == 0) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      throw new IllegalArgumentException("Row can't be empty");<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    }<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    this.ts = ts;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    this.familyMap = Preconditions.checkNotNull(familyMap);<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>  @Override<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  public CellScanner cellScanner() {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    return CellUtil.createCellScanner(getFamilyCellMap());<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   * Creates an empty list if one doesn't exist for the given column family<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * or else it returns the associated list of Cell objects.<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   *<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * @param family column family<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * @return a list of Cell objects, returns an empty list if one doesn't exist.<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   */<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  List&lt;Cell&gt; getCellList(byte[] family) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    List&lt;Cell&gt; list = this.familyMap.get(family);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    if (list == null) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      list = new ArrayList&lt;&gt;();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      this.familyMap.put(family, list);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    return list;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  }<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  /*<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * Create a KeyValue with this objects row key and the Put identifier.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   *<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * @return a KeyValue with this objects row key and the Put identifier.<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   */<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  KeyValue createPutKeyValue(byte[] family, byte[] qualifier, long ts, byte[] value) {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    return new KeyValue(this.row, family, qualifier, ts, KeyValue.Type.Put, value);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  /**<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   * Create a KeyValue with this objects row key and the Put identifier.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   * @param family<a name="line.174"></a>
-<span class="sourceLineNo">175</span>   * @param qualifier<a name="line.175"></a>
-<span class="sourceLineNo">176</span>   * @param ts<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   * @param value<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * @param tags - Specify the Tags as an Array<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * @return a KeyValue with this objects row key and the Put identifier.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  KeyValue createPutKeyValue(byte[] family, byte[] qualifier, long ts, byte[] value, Tag[] tags) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    KeyValue kvWithTag = new KeyValue(this.row, family, qualifier, ts, value, tags);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    return kvWithTag;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
-<span class="sourceLineNo">185</span><a name="line.185"></a>
-<span class="sourceLineNo">186</span>  /*<a name="line.186"></a>
-<span class="sourceLineNo">187</span>   * Create a KeyValue with this objects row key and the Put identifier.<a name="line.187"></a>
-<span class="sourceLineNo">188</span>   *<a name="line.188"></a>
-<span class="sourceLineNo">189</span>   * @return a KeyValue with this objects row key and the Put identifier.<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   */<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  KeyValue createPutKeyValue(byte[] family, ByteBuffer qualifier, long ts, ByteBuffer value,<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      Tag[] tags) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    return new KeyValue(this.row, 0, this.row == null ? 0 : this.row.length,<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        family, 0, family == null ? 0 : family.length,<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        qualifier, ts, KeyValue.Type.Put, value, tags != null ? Arrays.asList(tags) : null);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  }<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  /**<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   * Compile the column family (i.e. schema) information<a name="line.199"></a>
-<span class="sourceLineNo">200</span>   * into a Map. Useful for parsing and aggregation by debugging,<a name="line.200"></a>
-<span class="sourceLineNo">201</span>   * logging, and administration tools.<a name="line.201"></a>
-<span class="sourceLineNo">202</span>   * @return Map<a name="line.202"></a>
-<span class="sourceLineNo">203</span>   */<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  @Override<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public Map&lt;String, Object&gt; getFingerprint() {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    Map&lt;String, Object&gt; map = new HashMap&lt;&gt;();<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    List&lt;String&gt; families = new ArrayList&lt;&gt;(this.familyMap.entrySet().size());<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    // ideally, we would also include table information, but that information<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    // is not stored in each Operation instance.<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    map.put("families", families);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry : this.familyMap.entrySet()) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      families.add(Bytes.toStringBinary(entry.getKey()));<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    return map;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  /**<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   * Compile the details beyond the scope of getFingerprint (row, columns,<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   * timestamps, etc.) into a Map along with the fingerprinted information.<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   * Useful for debugging, logging, and administration tools.<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   * @param maxCols a limit on the number of columns output prior to truncation<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   * @return Map<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  @Override<a name="line.224"></a>
-<span class="sourceLineNo">225</span>  public Map&lt;String, Object&gt; toMap(int maxCols) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    // we start with the fingerprint map and build on top of it.<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    Map&lt;String, Object&gt; map = getFingerprint();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    // replace the fingerprint's simple list of families with a<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    // map from column families to lists of qualifiers and kv details<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    Map&lt;String, List&lt;Map&lt;String, Object&gt;&gt;&gt; columns = new HashMap&lt;&gt;();<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    map.put("families", columns);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    map.put("row", Bytes.toStringBinary(this.row));<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    int colCount = 0;<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    // iterate through all column families affected<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry : this.familyMap.entrySet()) {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      // map from this family to details for each cell affected within the family<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      List&lt;Map&lt;String, Object&gt;&gt; qualifierDetails = new ArrayList&lt;&gt;();<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      columns.put(Bytes.toStringBinary(entry.getKey()), qualifierDetails);<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      colCount += entry.getValue().size();<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      if (maxCols &lt;= 0) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        continue;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      // add details for each cell<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      for (Cell cell: entry.getValue()) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>        if (--maxCols &lt;= 0) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>          continue;<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        Map&lt;String, Object&gt; cellMap = cellToStringMap(cell);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        qualifierDetails.add(cellMap);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    map.put("totalColumns", colCount);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // add the id if set<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    if (getId() != null) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      map.put("id", getId());<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    // Add the TTL if set<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    // Long.MAX_VALUE is the default, and is interpreted to mean this attribute<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // has not been set.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    if (getTTL() != Long.MAX_VALUE) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      map.put("ttl", getTTL());<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    map.put("ts", this.ts);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    return map;<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  }<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  private static Map&lt;String, Object&gt; cellToStringMap(Cell c) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    Map&lt;String, Object&gt; stringMap = new HashMap&lt;&gt;();<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    stringMap.put("qualifier", Bytes.toStringBinary(c.getQualifierArray(), c.getQualifierOffset(),<a name="line.269"></a>
-<span class="sourceLineNo">270</span>                c.getQualifierLength()));<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    stringMap.put("timestamp", c.getTimestamp());<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    stringMap.put("vlen", c.getValueLength());<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    List&lt;Tag&gt; tags = PrivateCellUtil.getTags(c);<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    if (tags != null) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      List&lt;String&gt; tagsString = new ArrayList&lt;&gt;(tags.size());<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      for (Tag t : tags) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        tagsString<a name="line.277"></a>
-<span class="sourceLineNo">278</span>            .add((t.getType()) + ":" + Bytes.toStringBinary(Tag.cloneValue(t)));<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      stringMap.put("tag", tagsString);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    }<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    return stringMap;<a name="line.282"></a>
-<span class="sourceLineNo">283</span>  }<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>  /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * Set the durability for this mutation<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * @param d<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   */<a name="line.288"></a>
-<span class="sourceLineNo">289</span>  public Mutation setDurability(Durability d) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    this.durability = d;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    return this;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  /** Get the current durability */<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  public Durability getDurability() {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    return this.durability;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  }<a name="line.297"></a>
-<span class="sourceLineNo">298</span><a name="line.298"></a>
-<span class="sourceLineNo">299</span>  /**<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   * Method for retrieving the put's familyMap<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   * @return familyMap<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   */<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  public NavigableMap&lt;byte [], List&lt;Cell&gt;&gt; getFamilyCellMap() {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    return this.familyMap;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  /**<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   * Method to check if the familyMap is empty<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   * @return true if empty, false otherwise<a name="line.309"></a>
-<span class="sourceLineNo">310</span>   */<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  public boolean isEmpty() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    return familyMap.isEmpty();<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>  /**<a name="line.315"></a>
-<span class="sourceLineNo">316</span>   * Method for retrieving the delete's row<a name="line.316"></a>
-<span class="sourceLineNo">317</span>   * @return row<a name="line.317"></a>
-<span class="sourceLineNo">318</span>   */<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  @Override<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public byte [] getRow() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    return this.row;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>  /**<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0.<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   *             Use {@link Row#COMPARATOR} instead<a name="line.326"></a>
-<span class="sourceLineNo">327</span>   */<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  @Deprecated<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  public int compareTo(final Row d) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    return Bytes.compareTo(this.getRow(), d.getRow());<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  /**<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   * Method for retrieving the timestamp.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>   *<a name="line.336"></a>
-<span class="sourceLineNo">337</span>   * @return timestamp<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   */<a name="line.338"></a>
-<span class="sourceLineNo">339</span>  public long getTimestamp() {<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    return this.ts;<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  }<a name="line.341"></a>
-<span class="sourceLineNo">342</span><a name="line.342"></a>
-<span class="sourceLineNo">343</span>  /**<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   * Marks that the clusters with the given clusterIds have consumed the mutation<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   * @param clusterIds of the clusters that have consumed the mutation<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   */<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  public Mutation setClusterIds(List&lt;UUID&gt; clusterIds) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    ByteArrayDataOutput out = ByteStreams.newDataOutput();<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    out.writeInt(clusterIds.size());<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    for (UUID clusterId : clusterIds) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      out.writeLong(clusterId.getMostSignificantBits());<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      out.writeLong(clusterId.getLeastSignificantBits());<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    }<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    setAttribute(CONSUMED_CLUSTER_IDS, out.toByteArray());<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    return this;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>  /**<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   * @return the set of clusterIds that have consumed the mutation<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   */<a name="line.360"></a>
-<span class="sourceLineNo">361</span>  public List&lt;UUID&gt; getClusterIds() {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    List&lt;UUID&gt; clusterIds = new ArrayList&lt;&gt;();<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    byte[] bytes = getAttribute(CONSUMED_CLUSTER_IDS);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    if(bytes != null) {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      ByteArrayDataInput in = ByteStreams.newDataInput(bytes);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      int numClusters = in.readInt();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      for(int i=0; i&lt;numClusters; i++){<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        clusterIds.add(new UUID(in.readLong(), in.readLong()));<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return clusterIds;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  /**<a name="line.374"></a>
-<span class="sourceLineNo">375</span>   * Sets the visibility expression associated with cells in this Mutation.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>   * @param expression<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   */<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  public Mutation setCellVisibility(CellVisibility expression) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    this.setAttribute(VisibilityConstants.VISIBILITY_LABELS_ATTR_KEY,<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        toCellVisibility(expression).toByteArray());<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  /**<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   * @return CellVisibility associated with cells in this Mutation.<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   * @throws DeserializationException<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   */<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  public CellVisibility getCellVisibility() throws DeserializationException {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    byte[] cellVisibilityBytes = this.getAttribute(VisibilityConstants.VISIBILITY_LABELS_ATTR_KEY);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    if (cellVisibilityBytes == null) return null;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    return toCellVisibility(cellVisibilityBytes);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  }<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  /**<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   * Create a protocol buffer CellVisibility based on a client CellVisibility.<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   *<a name="line.396"></a>
-<span class="sourceLineNo">397</span>   * @param cellVisibility<a name="line.397"></a>
-<span class="sourceLineNo">398</span>   * @return a protocol buffer CellVisibility<a name="line.398"></a>
-<span class="sourceLineNo">399</span>   */<a name="line.399"></a>
-<span class="sourceLineNo">400</span>  static ClientProtos.CellVisibility toCellVisibility(CellVisibility cellVisibility) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    ClientProtos.CellVisibility.Builder builder = ClientProtos.CellVisibility.newBuilder();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    builder.setExpression(cellVisibility.getExpression());<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    return builder.build();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>  /**<a name="line.406"></a>
-<span class="sourceLineNo">407</span>   * Convert a protocol buffer CellVisibility to a client CellVisibility<a name="line.407"></a>
-<span class="sourceLineNo">408</span>   *<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   * @param proto<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @return the converted client CellVisibility<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
-<span class="sourceLineNo">412</span>  private static CellVisibility toCellVisibility(ClientProtos.CellVisibility proto) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    if (proto == null) return null;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    return new CellVisibility(proto.getExpression());<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  }<a name="line.415"></a>
-<span class="sourceLineNo">416</span><a name="line.416"></a>
-<span class="sourceLineNo">417</span>  /**<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * Convert a protocol buffer CellVisibility bytes to a client CellVisibility<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   *<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   * @param protoBytes<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   * @return the converted client CellVisibility<a name="line.421"></a>
-<span class="sourceLineNo">422</span>   * @throws DeserializationException<a name="line.422"></a>
-<span class="sourceLineNo">423</span>   */<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  private static CellVisibility toCellVisibility(byte[] protoBytes) throws DeserializationException {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    if (protoBytes == null) return null;<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    ClientProtos.CellVisibility.Builder builder = ClientProtos.CellVisibility.newBuilder();<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    ClientProtos.CellVisibility proto = null;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    try {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      ProtobufUtil.mergeFrom(builder, protoBytes);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      proto = builder.build();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    } catch (IOException e) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      throw new DeserializationException(e);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    return toCellVisibility(proto);<a name="line.434"></a>
-<span class="sourceLineNo">435</span>  }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span>  /**<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   * Number of KeyValues carried by this Mutation.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   * @return the total number of KeyValues<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   */<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  public int size() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    int size = 0;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    for (List&lt;Cell&gt; cells : this.familyMap.values()) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      size += cells.size();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    }<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    return size;<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  }<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span>  /**<a name="line.449"></a>
-<span class="sourceLineNo">450</span>   * @return the number of different families<a name="line.450"></a>
-<span class="sourceLineNo">451</span>   */<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  public int numFamilies() {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    return familyMap.size();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>  }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>  /**<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * @return Calculate what Mutation adds to class heap size.<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   */<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  @Override<a name="line.459"></a>
-<span class="sourceLineNo">460</span>  public long heapSize() {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    long heapsize = MUTATION_OVERHEAD;<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    // Adding row<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    heapsize += ClassSize.align(ClassSize.ARRAY + this.row.length);<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>    // Adding map overhead<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    heapsize +=<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      ClassSize.align(this.familyMap.size() * ClassSize.MAP_ENTRY);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    for(Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry : this.familyMap.entrySet()) {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      //Adding key overhead<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      heapsize +=<a name="line.470"></a>
-<span class="sourceLineNo">471</span>        ClassSize.align(ClassSize.ARRAY + entry.getKey().length);<a name="line.471"></a>
-<span class="sourceLineNo">472</span><a name="line.472"></a>
-<span class="sourceLineNo">473</span>      //This part is kinds tricky since the JVM can reuse references if you<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      //store the same value, but have a good match with SizeOf at the moment<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      //Adding value overhead<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      heapsize += ClassSize.align(ClassSize.ARRAYLIST);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      int size = entry.getValue().size();<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      heapsize += ClassSize.align(ClassSize.ARRAY +<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          size * ClassSize.REFERENCE);<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>      for (Cell cell : entry.getValue()) {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>        heapsize += cell.heapSize();<a name="line.482"></a>
-<span class="sourceLineNo">483</span>      }<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    }<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    heapsize += getAttributeSize();<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    heapsize += extraHeapSize();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    return ClassSize.align(heapsize);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>  }<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span>  /**<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * @return The serialized ACL for this operation, or null if none<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   */<a name="line.492"></a>
-<span class="sourceLineNo">493</span>  public byte[] getACL() {<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    return getAttribute(AccessControlConstants.OP_ATTRIBUTE_ACL);<a name="line.494"></a>
-<span class="sourceLineNo">495</span>  }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span>  /**<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * @param user User short name<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * @param perms Permissions for the user<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   */<a name="line.500"></a>
-<span class="sourceLineNo">501</span>  public Mutation setACL(String user, Permission perms) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    setAttribute(AccessControlConstants.OP_ATTRIBUTE_ACL,<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      AccessControlUtil.toUsersAndPermissions(user, perms).toByteArray());<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    return this;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  }<a name="line.505"></a>
-<span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>  /**<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   * @param perms A map of permissions for a user or users<a name="line.508"></a>
-<span class="sourceLineNo">509</span>   */<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  public Mutation setACL(Map&lt;String, Permission&gt; perms) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    ListMultimap&lt;String, Permission&gt; permMap = ArrayListMultimap.create();<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    for (Map.Entry&lt;String, Permission&gt; entry : perms.entrySet()) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      permMap.put(entry.getKey(), entry.getValue());<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    setAttribute(AccessControlConstants.OP_ATTRIBUTE_ACL,<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      AccessControlUtil.toUsersAndPermissions(permMap).toByteArray());<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    return this;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>  }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>  /**<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * Return the TTL requested for the result of the mutation, in milliseconds.<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   * @return the TTL requested for the result of the mutation, in milliseconds,<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   * or Long.MAX_VALUE if unset<a name="line.523"></a>
-<span class="sourceLineNo">524</span>   */<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  public long getTTL() {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    byte[] ttlBytes = getAttribute(OP_ATTRIBUTE_TTL);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>    if (ttlBytes != null) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>      return Bytes.toLong(ttlBytes);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    }<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    return Long.MAX_VALUE;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>  }<a name="line.531"></a>
-<span class="sourceLineNo">532</span><a name="line.532"></a>
-<span class="sourceLineNo">533</span>  /**<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * Set the TTL desired for the result of the mutation, in milliseconds.<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * @param ttl the TTL desired for the result of the mutation, in milliseconds<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   * @return this<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   */<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  public Mutation setTTL(long ttl) {<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    setAttribute(OP_ATTRIBUTE_TTL, Bytes.toBytes(ttl));<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    return this;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>  /**<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * @return current value for returnResults<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   */<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  // Used by Increment and Append only.<a name="line.546"></a>
-<span class="sourceLineNo">547</span>  @InterfaceAudience.Private<a name="line.547"></a>
-<span class="sourceLineNo">548</span>  protected boolean isReturnResults() {<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    byte[] v = getAttribute(RETURN_RESULTS);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    return v == null ? true : Bytes.toBoolean(v);<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  }<a name="line.551"></a>
-<span class="sourceLineNo">552</span><a name="line.552"></a>
-<span class="sourceLineNo">553</span>  @InterfaceAudience.Private<a name="line.553"></a>
-<span class="sourceLineNo">554</span>  // Used by Increment and Append only.<a name="line.554"></a>
-<span class="sourceLineNo">555</span>  protected Mutation setReturnResults(boolean returnResults) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    setAttribute(RETURN_RESULTS, Bytes.toBytes(returnResults));<a name="line.556"></a>
-<span class="sourceLineNo">557</span>    return this;<a name="line.557"></a>
-<span class="sourceLineNo">558</span>  }<a name="line.558"></a>
-<span class="sourceLineNo">559</span><a name="line.559"></a>
-<span class="sourceLineNo">560</span>  /**<a name="line.560"></a>
-<span class="sourceLineNo">561</span>   * Subclasses should override this method to add the heap size of their own fields.<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   * @return the heap size to add (will be aligned).<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   */<a name="line.563"></a>
-<span class="sourceLineNo">564</span>  protected long extraHeapSize(){<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    return 0L;<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  }<a name="line.566"></a>
-<span class="sourceLineNo">567</span><a name="line.567"></a>
-<span class="sourceLineNo">568</span>  /**<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   * Set the timestamp of the delete.<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   */<a name="line.570"></a>
-<span class="sourceLineNo">571</span>  public Mutation setTimestamp(long timestamp) {<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    if (timestamp &lt; 0) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      throw new IllegalArgumentException("Timestamp cannot be negative. ts=" + timestamp);<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    this.ts = timestamp;<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    return this;<a name="line.576"></a>
-<span class="sourceLineNo">577</span>  }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span>  /**<a name="line.579"></a>
-<span class="sourceLineNo">580</span>   * A convenience method to determine if this object's familyMap contains<a name="line.580"></a>
-<span class="sourceLineNo">581</span>   * a value assigned to the given family &amp;amp; qualifier.<a name="line.581"></a>
-<span class="sourceLineNo">582</span>   * Both given arguments must match the KeyValue object to return true.<a name="line.582"></a>
-<span class="sourceLineNo">583</span>   *<a name="line.583"></a>
-<span class="sourceLineNo">584</span>   * @param family column family<a name="line.584"></a>
-<span class="sourceLineNo">585</span>   * @param qualifier column qualifier<a name="line.585"></a>
-<span class="sourceLineNo">586</span>   * @return returns true if the given family and qualifier already has an<a name="line.586"></a>
-<span class="sourceLineNo">587</span>   * existing KeyValue object in the family map.<a name="line.587"></a>
-<span class="sourceLineNo">588</span>   */<a name="line.588"></a>
-<span class="sourceLineNo">589</span>  public boolean has(byte [] family, byte [] qualifier) {<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    return has(family, qualifier, this.ts, HConstants.EMPTY_BYTE_ARRAY, true, true);<a name="line.590"></a>
-<span class="sourceLineNo">591</span>  }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>  /**<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * A convenience method to determine if this object's familyMap contains<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * a value assigned to the given family, qualifier and timestamp.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * All 3 given arguments must match the KeyValue object to return true.<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   *<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * @param family column family<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * @param qualifier column qualifier<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @param ts timestamp<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   * @return returns true if the given family, qualifier and timestamp already has an<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * existing KeyValue object in the family map.<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   */<a name="line.603"></a>
-<span class="sourceLineNo">604</span>  public boolean has(byte [] family, byte [] qualifier, long ts) {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    return has(family, qualifier, ts, HConstants.EMPTY_BYTE_ARRAY, false, true);<a name="line.605"></a>
-<span class="sourceLineNo">606</span>  }<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>  /**<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   * A convenience method to determine if this object's familyMap contains<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   * a value assigned to the given family, qualifier and timestamp.<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * All 3 given arguments must match the KeyValue object to return true.<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   *<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * @param family column family<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   * @param qualifier column qualifier<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   * @param value value to check<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   * @return returns true if the given family, qualifier and value already has an<a name="line.616"></a>
-<span class="sourceLineNo">617</span>   * existing KeyValue object in the family map.<a name="line.617"></a>
-<span class="sourceLineNo">618</span>   */<a name="line.618"></a>
-<span class="sourceLineNo">619</span>  public boolean has(byte [] family, byte [] qualifier, byte [] value) {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    return has(family, qualifier, this.ts, value, true, false);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>  /**<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   * A convenience method to determine if this object's familyMap contains<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   * the given value assigned to the given family, qualifier and timestamp.<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * All 4 given arguments must match the KeyValue object to return true.<a name="line.626"></a>
-<span class="sourceLineNo">627</span>   *<a name="line.627"></a>
-<span class="sourceLineNo">628</span>   * @param family column family<a name="line.628"></a>
-<span class="sourceLineNo">629</span>   * @param qualifier column qualifier<a name="line.629"></a>
-<span class="sourceLineNo">630</span>   * @param ts timestamp<a name="line.630"></a>
-<span class="sourceLineNo">631</span>   * @param value value to check<a name="line.631"></a>
-<span class="sourceLineNo">632</span>   * @return returns true if the given family, qualifier timestamp and value<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   *   already has an existing KeyValue object in the family map.<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   */<a name="line.634"></a>
-<span class="sourceLineNo">635</span>  public boolean has(byte [] family, byte [] qualifier, long ts, byte [] value) {<a name="line.635"></a>
-<span class="sourceLineNo">636</span>    return has(family, qualifier, ts, value, false, false);<a name="line.636"></a>
-<span class="sourceLineNo">637</span>  }<a name="line.637"></a>
-<span class="sourceLineNo">638</span><a name="line.638"></a>
-<span class="sourceLineNo">639</span>  /**<a name="line.639"></a>
-<span class="sourceLineNo">640</span>   * Returns a list of all KeyValue objects with matching column family and qualifier.<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   *<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * @param family column family<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * @param qualifier column qualifier<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * @return a list of KeyValue objects with the matching family and qualifier,<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   *   returns an empty list if one doesn't exist for the given family.<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   */<a name="line.646"></a>
-<span class="sourceLineNo">647</span>  public List&lt;Cell&gt; get(byte[] family, byte[] qualifier) {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    List&lt;Cell&gt; filteredList = new ArrayList&lt;&gt;();<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    for (Cell cell: getCellList(family)) {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      if (CellUtil.matchingQualifier(cell, qualifier)) {<a name="line.650"></a>
-<span class="sourceLineNo">651</span>        filteredList.add(cell);<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      }<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    }<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    return filteredList;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>  }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>  /*<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   * Private method to determine if this object's familyMap contains<a name="line.658"></a>
-<span class="sourceLineNo">659</span>   * the given value assigned to the given family, qualifier and timestamp<a name="line.659"></a>
-<span class="sourceLineNo">660</span>   * respecting the 2 boolean arguments<a name="line.660"></a>
-<span class="sourceLineNo">661</span>   *<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   * @param family<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   * @param qualifier<a name="line.663"></a>
-<span class="sourceLineNo">664</span>   * @param ts<a name="line.664"></a>
-<span class="sourceLineNo">665</span>   * @param value<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * @param ignoreTS<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   * @param ignoreValue<a name="line.667"></a>
-<span class="sourceLineNo">668</span>   * @return returns true if the given family, qualifier timestamp and value<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * already has an existing KeyValue object in the family map.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   */<a name="line.670"></a>
-<span class="sourceLineNo">671</span>  protected boolean has(byte[] family, byte[] qualifier, long ts, byte[] value,<a name="line.671"></a>
-<span class="sourceLineNo">672</span>      boolean ignoreTS, boolean ignoreValue) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    List&lt;Cell&gt; list = getCellList(family);<a name="line.673"></a>
-<span class="sourceLineNo">674</span>    if (list.isEmpty()) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>      return false;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>    }<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    // Boolean analysis of ignoreTS/ignoreValue.<a name="line.677"></a>
-<span class="sourceLineNo">678</span>    // T T =&gt; 2<a name="line.678"></a>
-<span class="sourceLineNo">679</span>    // T F =&gt; 3 (first is always true)<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    // F T =&gt; 2<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    // F F =&gt; 1<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    if (!ignoreTS &amp;&amp; !ignoreValue) {<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      for (Cell cell : list) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>        if (CellUtil.matchingFamily(cell, family) &amp;&amp;<a name="line.684"></a>
-<span class="sourceLineNo">685</span>            CellUtil.matchingQualifier(cell, qualifier)  &amp;&amp;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>            CellUtil.matchingValue(cell, value) &amp;&amp;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>            cell.getTimestamp() == ts) {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>          return true;<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        }<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      }<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    } else if (ignoreValue &amp;&amp; !ignoreTS) {<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      for (Cell cell : list) {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        if (CellUtil.matchingFamily(cell, family) &amp;&amp; CellUtil.matchingQualifier(cell, qualifier)<a name="line.693"></a>
-<span class="sourceLineNo">694</span>            &amp;&amp; cell.getTimestamp() == ts) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          return true;<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
-<span class="sourceLineNo">697</span>      }<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    } else if (!ignoreValue &amp;&amp; ignoreTS) {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>      for (Cell cell : list) {<a name="line.699"></a>
-<span class="sourceLineNo">700</span>        if (CellUtil.matchingFamily(cell, family) &amp;&amp; CellUtil.matchingQualifier(cell, qualifier)<a name="line.700"></a>
-<span class="sourceLineNo">701</span>            &amp;&amp; CellUtil.matchingValue(cell, value)) {<a name="line.701"></a>
-<span class="sourceLineNo">702</span>          return true;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>        }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>      }<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    } else {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>      for (Cell cell : list) {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>        if (CellUtil.matchingFamily(cell, family) &amp;&amp;<a name="line.707"></a>
-<span class="sourceLineNo">708</span>            CellUtil.matchingQualifier(cell, qualifier)) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>          return true;<a name="line.709"></a>
-<span class="sourceLineNo">710</span>        }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>      }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    }<a name="line.712"></a>
-<span class="sourceLineNo">713</span>    return false;<a name="line.713"></a>
-<span class="sourceLineNo">714</span>  }<a name="line.714"></a>
-<span class="sourceLineNo">715</span><a name="line.715"></a>
-<span class="sourceLineNo">716</span>  /**<a name="line.716"></a>
-<span class="sourceLineNo">717</span>   * @param row Row to check<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * @throws IllegalArgumentException Thrown if &lt;code&gt;row&lt;/code&gt; is empty or null or<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * &amp;gt; {@link HConstants#MAX_ROW_LENGTH}<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * @return &lt;code&gt;row&lt;/code&gt;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   */<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  static byte [] checkRow(final byte [] row) {<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    return checkRow(row, 0, row == null? 0: row.length);<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  }<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  /**<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * @param row Row to check<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   * @param offset<a name="line.728"></a>
-<span class="sourceLineNo">729</span>   * @param length<a name="line.729"></a>
-<span class="sourceLineNo">730</span>   * @throws IllegalArgumentException Thrown if &lt;code&gt;row&lt;/code&gt; is empty or null or<a name="line.730"></a>
-<span class="sourceLineNo">731</span>   * &amp;gt; {@link HConstants#MAX_ROW_LENGTH}<a name="line.731"></a>
-<span class="sourceLineNo">732</span>   * @return &lt;code&gt;row&lt;/code&gt;<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   */<a name="line.733"></a>
-<span class="sourceLineNo">734</span>  static byte [] checkRow(final byte [] row, final int offset, final int length) {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    if (row == null) {<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      throw new IllegalArgumentException("Row buffer is null");<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    }<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    if (length == 0) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      throw new IllegalArgumentException("Row length is 0");<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    if (length &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.741"></a>
-<span class="sourceLineNo">742</span>      throw new IllegalArgumentException("Row length " + length + " is &gt; " +<a name="line.742"></a>
-<span class="sourceLineNo">743</span>        HConstants.MAX_ROW_LENGTH);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    }<a name="line.744"></a>
-<span class="sourceLineNo">745</span>    return row;<a name="line.745"></a>
-<span class="sourceLineNo">746</span>  }<a name="line.746"></a>
-<span class="sourceLineNo">747</span><a name="line.747"></a>
-<span class="sourceLineNo">748</span>  static void checkRow(ByteBuffer row) {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    if (row == null) {<a name="line.749"></a>
-<span class="sourceLineNo">750</span>      throw new IllegalArgumentException("Row buffer is null");<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    }<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    if (row.remaining() == 0) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>      throw new IllegalArgumentException("Row length is 0");<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    }<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    if (row.remaining() &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      throw new IllegalArgumentException("Row length " + row.remaining() + " is &gt; " +<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          HConstants.MAX_ROW_LENGTH);<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    }<a name="line.758"></a>
-<span class="sourceLineNo">759</span>  }<a name="line.759"></a>
-<span class="sourceLineNo">760</span><a name="line.760"></a>
-<span class="sourceLineNo">761</span>  Mutation add(Cell cell) throws IOException {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>    //Checking that the row of the kv is the same as the mutation<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    // TODO: It is fraught with risk if user pass the wrong row.<a name="line.763"></a>
-<span class="sourceLineNo">764</span>    // Throwing the IllegalArgumentException is more suitable I'd say.<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    if (!CellUtil.matchingRows(cell, this.row)) {<a name="line.765"></a>
-<span class="sourceLineNo">766</span>      throw new WrongRowIOException("The row in " + cell.toString() +<a name="line.766"></a>
-<span class="sourceLineNo">767</span>        " doesn't match the original one " +  Bytes.toStringBinary(this.row));<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    }<a name="line.768"></a>
-<span class="sourceLineNo">769</span><a name="line.769"></a>
-<span class="sourceLineNo">770</span>    byte[] family;<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span>    if (cell instanceof IndividualBytesFieldCell) {<a name="line.772"></a>
-<span class="sourceLineNo">773</span>      family = cell.getFamilyArray();<a name="line.773"></a>
-<span class="sourceLineNo">774</span>    } else {<a name="line.774"></a>
-<span class="sourceLineNo">775</span>      family = CellUtil.cloneFamily(cell);<a name="line.775"></a>
-<span class="sourceLineNo">776</span>    }<a name="line.776"></a>
-<span class="sourceLineNo">777</span><a name="line.777"></a>
-<span class="sourceLineNo">778</span>    if (family == null || family.length == 0) {<a name="line.778"></a>
-<span class="sourceLineNo">779</span>      throw new IllegalArgumentException("Family cannot be null");<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    }<a name="line.780"></a>
-<span class="sourceLineNo">781</span><a name="line.781"></a>
-<span class="sourceLineNo">782</span>    if (cell instanceof ExtendedCell) {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      getCellList(family).add(cell);<a name="line.783"></a>
-<span class="sourceLineNo">784</span>    } else {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      getCellList(family).add(new CellWrapper(cell));<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    }<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    return this;<a name="line.787"></a>
-<span class="sourceLineNo">788</span>  }<a name="line.788"></a>
-<span class="sourceLineNo">789</span><a name="line.789"></a>
-<span class="sourceLineNo">790</span>  /**<a name="line.790"></a>
-<span class="sourceLineNo">791</span>   * get a CellBuilder instance that already has relevant Type and Row set.<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * @param cellBuilderType e.g CellBuilderType.SHALLOW_COPY<a name="line.792"></a>
-<span class="sourceLineNo">793</span>   * @return CellBuilder which already has relevant Type and Row set.<a name="line.793"></a>
-<span class="sourceLineNo">794</span>   */<a name="line.794"></a>
-<span class="sourceLineNo">795</span>  public abstract CellBuilder getCellBuilder(CellBuilderType cellBuilderType);<a name="line.795"></a>
-<span class="sourceLineNo">796</span><a name="line.796"></a>
-<span class="sourceLineNo">797</span>  /**<a name="line.797"></a>
-<span class="sourceLineNo">798</span>   * get a CellBuilder instance that already has relevant Type and Row set.<a name="line.798"></a>
-<span class="sourceLineNo">799</span>   * the default CellBuilderType is CellBuilderType.SHALLOW_COPY<a name="line.799"></a>
-<span class="sourceLineNo">800</span>   * @return CellBuilder which already has relevant Type and Row set.<a name="line.800"></a>
-<span class="sourceLineNo">801</span>   */<a name="line.801"></a>
-<span class="sourceLineNo">802</span>  public CellBuilder getCellBuilder() {<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    return getCellBuilder(CellBuilderType.SHALLOW_COPY);<a name="line.803"></a>
-<span class="sourceLineNo">804</span>  }<a name="line.804"></a>
-<span class="sourceLineNo">805</span><a name="line.805"></a>
-<span class="sourceLineNo">806</span>  /**<a name="line.806"></a>
-<span class="sourceLineNo">807</span>   * get a CellBuilder instance that already has relevant Type and Row set.<a name="line.807"></a>
-<span class="sourceLineNo">808</span>   * @param cellBuilderType e.g CellBuilderType.SHALLOW_COPY<a name="line.808"></a>
-<span class="sourceLineNo">809</span>   * @param cellType e.g Cell.Type.Put<a name="line.809"></a>
-<span class="sourceLineNo">810</span>   * @return CellBuilder which already has relevant Type and Row set.<a name="line.810"></a>
-<span class="sourceLineNo">811</span>     */<a name="line.811"></a>
-<span class="sourceLineNo">812</span>  protected CellBuilder getCellBuilder(CellBuilderType cellBuilderType, Cell.Type cellType) {<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    CellBuilder builder = CellBuilderFactory.create(cellBuilderType).setRow(row).setType(cellType);<a name="line.813"></a>
-<span class="sourceLineNo">814</span>    return new CellBuilder() {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>      @Override<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      public CellBuilder setRow(byte[] row) {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>        return this;<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      }<a name="line.818"></a>
-<span class="sourceLineNo">819</span><a name="line.819"></a>
-<span class="sourceLineNo">820</span>      @Override<a name="line.820"></a>
-<span class="sourceLineNo">821</span>      public CellBuilder setType(Cell.Type type) {<a name="line.821"></a>
-<span class="sourceLineNo">822</span>        return this;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>      }<a name="line.823"></a>
-<span class="sourceLineNo">824</span><a name="line.824"></a>
-<span class="sourceLineNo">825</span>      @Override<a name="line.825"></a>
-<span class="sourceLineNo">826</span>      public CellBuilder setRow(byte[] row, int rOffset, int rLength) {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>        return this;<a name="line.827"></a>
-<span class="sourceLineNo">828</span>      }<a name="line.828"></a>
-<span class="sourceLineNo">829</span><a name="line.829"></a>
-<span class="sourceLineNo">830</span>      @Override<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      public CellBuilder setFamily(byte[] family) {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>        builder.setFamily(family);<a name="line.832"></a>
-<span class="sourceLineNo">833</span>        return this;<a name="line.833"></a>
-<span class="sourceLineNo">834</span>      }<a name="line.834"></a>
-<span class="sourceLineNo">835</span><a name="line.835"></a>
-<span class="sourceLineNo">836</span>      @Override<a name="line.836"></a>
-<span class="sourceLineNo">837</span>      public CellBuilder setFamily(byte[] family, int fOffset, int fLength) {<a name="line.837"></a>
-<span class="sourceLineNo">838</span>        builder.setFamily(family, fOffset, fLength);<a name="line.838"></a>
-<span class="sourceLineNo">839</span>        return this;<a name="line.839"></a>
-<span class="sourceLineNo">840</span>      }<a name="line.840"></a>
-<span class="sourceLineNo">841</span><a name="line.841"></a>
-<span class="sourceLineNo">842</span>      @Override<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      public CellBuilder setQualifier(byte[] qualifier) {<a name="line.843"></a>
-<span class="sourceLineNo">844</span>        builder.setQualifier(qualifier);<a name="line.844"></a>
-<span class="sourceLineNo">845</span>        return this;<a name="line.845"></a>
-<span class="sourceLineNo">846</span>      }<a name="line.846"></a>
-<span class="sourceLineNo">847</span><a name="line.847"></a>
-<span class="sourceLineNo">848</span>      @Override<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      public CellBuilder setQualifier(byte[] qualifier, int qOffset, int qLength) {<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        builder.setQualifier(qualifier, qOffset, qLength);<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        return this;<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span><a name="line.853"></a>
-<span class="sourceLineNo">854</span>      @Override<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      public CellBuilder setTimestamp(long timestamp) {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        builder.setTimestamp(timestamp);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        return this;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>      @Override<a name="line.860"></a>
-<span class="sourceLineNo">861</span>      public CellBuilder setValue(byte[] value) {<a name="line.861"></a>
-<span class="sourceLineNo">862</span>        builder.setValue(value);<a name="line.862"></a>
-<span class="sourceLineNo">863</span>        return this;<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      }<a name="line.864"></a>
-<span class="sourceLineNo">865</span><a name="line.865"></a>
-<span class="sourceLineNo">866</span>      @Override<a name="line.866"></a>
-<span class="sourceLineNo">867</span>      public CellBuilder setValue(byte[] value, int vOffset, int vLength) {<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        builder.setValue(value, vOffset, vLength);<a name="line.868"></a>
-<span class="sourceLineNo">869</span>        return this;<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      }<a name="line.870"></a>
-<span class="sourceLineNo">871</span><a name="line.871"></a>
-<span class="sourceLineNo">872</span>      @Override<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      public Cell build() {<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        return builder.build();<a name="line.874"></a>
-<span class="sourceLineNo">875</span>      }<a name="line.875"></a>
-<span class="sourceLineNo">876</span><a name="line.876"></a>
-<span class="sourceLineNo">877</span>      @Override<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      public CellBuilder clear() {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        builder.clear();<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        // reset the row and type<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        builder.setRow(row);<a name="line.881"></a>
-<span class="sourceLineNo">882</span>        builder.setType(cellType);<a name="line.882"></a>
-<span class="sourceLineNo">883</span>        return this;<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      }<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    };<a name="line.885"></a>
-<span class="sourceLineNo">886</span>  }<a name="line.886"></a>
-<span class="sourceLineNo">887</span><a name="line.887"></a>
-<span class="sourceLineNo">888</span>  private static final class CellWrapper implements ExtendedCell {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>    private static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.889"></a>
-<span class="sourceLineNo">890</span>      ClassSize.OBJECT              // object header<a name="line.890"></a>
-<span class="sourceLineNo">891</span>        + KeyValue.TIMESTAMP_SIZE       // timestamp<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        + Bytes.SIZEOF_LONG             // sequence id<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        + 1 * ClassSize.REFERENCE);     // references to cell<a name="line.893"></a>
-<span class="sourceLineNo">894</span>    private final Cell cell;<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    private long sequenceId;<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    private long timestamp;<a name="line.896"></a>
-<span class="sourceLineNo">897</span><a name="line.897"></a>
-<span class="sourceLineNo">898</span>    CellWrapper(Cell cell) {<a name="line.898"></a>
-<span class="sourceLineNo">899</span>      assert !(cell instanceof ExtendedCell);<a name="line.899"></a>
-<span class="sourceLineNo">900</span>      this.cell = cell;<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      this.sequenceId = cell.getSequenceId();<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      this.timestamp = cell.getTimestamp();<a name="line.902"></a>
-<span class="sourceLineNo">903</span>    }<a name="line.903"></a>
-<span class="sourceLineNo">904</span><a name="line.904"></a>
-<span class="sourceLineNo">905</span>    @Override<a name="line.905"></a>
-<span class="sourceLineNo">906</span>    public void setSequenceId(long seqId) {<a name="line.906"></a>
-<span class="sourceLineNo">907</span>      sequenceId = seqId;<a name="line.907"></a>
-<span class="sourceLineNo">908</span>    }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>    @Override<a name="line.910"></a>
-<span class="sourceLineNo">911</span>    public void setTimestamp(long ts) {<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      timestamp = ts;<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>    @Override<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    public void setTimestamp(byte[] ts) {<a name="line.916"></a>
-<span class="sourceLineNo">917</span>      timestamp = Bytes.toLong(ts);<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    }<a name="line.918"></a>
-<span class="sourceLineNo">919</span><a name="line.919"></a>
-<span class="sourceLineNo">920</span>    @Override<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    public long getSequenceId() {<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      return sequenceId;<a name="line.922"></a>
-<span class="sourceLineNo">923</span>    }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>    @Override<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    public byte[] getValueArray() {<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      return cell.getValueArray();<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
-<span class="sourceLineNo">929</span><a name="line.929"></a>
-<span class="sourceLineNo">930</span>    @Override<a name="line.930"></a>
-<span class="sourceLineNo">931</span>    public int getValueOffset() {<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      return cell.getValueOffset();<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    }<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>    @Override<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    public int getValueLength() {<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      return cell.getValueLength();<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    }<a name="line.938"></a>
-<span class="sourceLineNo">939</span><a name="line.939"></a>
-<span class="sourceLineNo">940</span>    @Override<a name="line.940"></a>
-<span class="sourceLineNo">941</span>    public byte[] getTagsArray() {<a name="line.941"></a>
-<span class="sourceLineNo">942</span>      return cell.getTagsArray();<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    }<a name="line.943"></a>
-<span class="sourceLineNo">944</span><a name="line.944"></a>
-<span class="sourceLineNo">945</span>    @Override<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    public int getTagsOffset() {<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      return cell.getTagsOffset();<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    }<a name="line.948"></a>
-<span class="sourceLineNo">949</span><a name="line.949"></a>
-<span class="sourceLineNo">950</span>    @Override<a name="line.950"></a>
-<span class="sourceLineNo">951</span>    public int getTagsLength() {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>      return cell.getTagsLength();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>    }<a name="line.953"></a>
-<span class="sourceLineNo">954</span><a name="line.954"></a>
-<span class="sourceLineNo">955</span>    @Override<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    public byte[] getRowArray() {<a name="line.956"></a>
-<span class="sourceLineNo">957</span>      return cell.getRowArray();<a name="line.957"></a>
-<span class="sourceLineNo">958</span>    }<a name="line.958"></a>
-<span class="sourceLineNo">959</span><a name="line.959"></a>
-<span class="sourceLineNo">960</span>    @Override<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    public int getRowOffset() {<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      return cell.getRowOffset();<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    }<a name="line.963"></a>
-<span class="sourceLineNo">964</span><a name="line.964"></a>
-<span class="sourceLineNo">965</span>    @Override<a name="line.965"></a>
-<span class="sourceLineNo">966</span>    public short getRowLength() {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>      return cell.getRowLength();<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    }<a name="line.968"></a>
-<span class="sourceLineNo">969</span><a name="line.969"></a>
-<span class="sourceLineNo">970</span>    @Override<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    public byte[] getFamilyArray() {<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      return cell.getFamilyArray();<a name="line.972"></a>
-<span class="sourceLineNo">973</span>    }<a name="line.973"></a>
-<span class="sourceLineNo">974</span><a name="line.974"></a>
-<span class="sourceLineNo">975</span>    @Override<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    public int getFamilyOffset() {<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      return cell.getFamilyOffset();<a name="line.977"></a>
-<span class="sourceLineNo">978</span>    }<a name="line.978"></a>
-<span class="sourceLineNo">979</span><a name="line.979"></a>
-<span class="sourceLineNo">980</span>    @Override<a name="line.980"></a>
-<span class="sourceLineNo">981</span>    public byte getFamilyLength() {<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      return cell.getFamilyLength();<a name="line.982"></a>
-<span class="sourceLineNo">983</span>    }<a name="line.983"></a>
-<span class="sourceLineNo">984</span><a name="line.984"></a>
-<span class="sourceLineNo">985</span>    @Override<a name="line.985"></a>
-<span class="sourceLineNo">986</span>    public byte[] getQualifierArray() {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>      return cell.getQualifierArray();<a name="line.987"></a>
-<span class="sourceLineNo">988</span>    }<a name="line.988"></a>
-<span class="sourceLineNo">989</span><a name="line.989"></a>
-<span class="sourceLineNo">990</span>    @Override<a name="line.990"></a>
-<span class="sourceLineNo">991</span>    public int getQualifierOffset() {<a name="line.991"></a>
-<span class="sourceLineNo">992</span>      return cell.getQualifierOffset();<a name="line.992"></a>
-<span class="sourceLineNo">993</span>    }<a name="line.993"></a>
-<span class="sourceLineNo">994</span><a name="line.994"></a>
-<span class="sourceLineNo">995</span>    @Override<a name="line.995"></a>
-<span class="sourceLineNo">996</span>    public int getQualifierLength() {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>      return cell.getQualifierLength();<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    }<a name="line.998"></a>
-<span class="sourceLineNo">999</span><a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    @Override<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>    public long getTimestamp() {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>      return timestamp;<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    }<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span><a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    @Override<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    public byte getTypeByte() {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      return cell.getTypeByte();<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>    }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span><a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>    @Override<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>    public Optional&lt;Tag&gt; getTag(byte type) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      if (cell instanceof RawCell) {<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>        return ((RawCell) cell).getTag(type);<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>      }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>      return PrivateCellUtil.getTag(cell, type);<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    }<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span><a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>    @Override<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    public Iterator&lt;Tag&gt; getTags() {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      if (cell instanceof RawCell) {<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>        return ((RawCell) cell).getTags();<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>      }<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      return PrivateCellUtil.tagsIterator(cell);<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span><a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    @Override<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    public byte[] cloneTags() {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>      if (cell instanceof RawCell) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>        return ((RawCell) cell).cloneTags();<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>      }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      return PrivateCellUtil.cloneTags(cell);<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    }<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>    private long heapOverhead() {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      return FIXED_OVERHEAD<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        + ClassSize.ARRAY // row<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>        + getFamilyLength() == 0 ? 0 : ClassSize.ARRAY<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>        + getQualifierLength() == 0 ? 0 : ClassSize.ARRAY<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>        + getValueLength() == 0 ? 0 : ClassSize.ARRAY<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>        + getTagsLength() == 0 ? 0 : ClassSize.ARRAY;<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>    }<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span><a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>    @Override<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>    public long heapSize() {<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>      return heapOverhead()<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>        + ClassSize.align(getRowLength())<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>        + ClassSize.align(getFamilyLength())<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>        + ClassSize.align(getQualifierLength())<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>        + ClassSize.align(getValueLength())<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>        + ClassSize.align(getTagsLength());<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    }<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>  }<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>}<a name="line.1053"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.security.access.AccessControlConstants;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.security.access.AccessControlUtil;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.security.access.Permission;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.security.visibility.CellVisibility;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.security.visibility.VisibilityConstants;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.util.ClassSize;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteArrayDataInput;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteArrayDataOutput;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos;<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>@InterfaceAudience.Public<a name="line.69"></a>
+<span class="sourceLineNo">070</span>public abstract class Mutation extends OperationWithAttributes implements Row, CellScannable,<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    HeapSize {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  public static final long MUTATION_OVERHEAD = ClassSize.align(<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      // This<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      ClassSize.OBJECT +<a name="line.74"></a>
+<span class="sourceLineNo">075</span>      // row + OperationWithAttributes.attributes<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      2 * ClassSize.REFERENCE +<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      // Timestamp<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      1 * Bytes.SIZEOF_LONG +<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      // durability<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      ClassSize.REFERENCE +<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      // familyMap<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      ClassSize.REFERENCE +<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      // familyMap<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      ClassSize.TREEMAP +<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      // priority<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      ClassSize.INTEGER<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  );<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>  /**<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * The attribute for storing the list of clusters that have consumed the change.<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private static final String CONSUMED_CLUSTER_IDS = "_cs.id";<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  /**<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   * The attribute for storing TTL for the result of the mutation.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  private static final String OP_ATTRIBUTE_TTL = "_ttl";<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  private static final String RETURN_RESULTS = "_rr_";<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span>  // TODO: row should be final<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected byte [] row = null;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  protected long ts = HConstants.LATEST_TIMESTAMP;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  protected Durability durability = Durability.USE_DEFAULT;<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  // TODO: familyMap should be final<a name="line.106"></a>
+<span class="sourceLineNo">107</span>  // A Map sorted by column family.<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  protected NavigableMap&lt;byte [], List&lt;Cell&gt;&gt; familyMap;<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * empty construction.<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   * We need this empty construction to keep binary compatibility.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   */<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  protected Mutation() {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    this.familyMap = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>  protected Mutation(Mutation clone) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    super(clone);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    this.row = clone.getRow();<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    this.ts = clone.getTimestamp();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    this.familyMap = clone.getFamilyCellMap().entrySet().stream().<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      collect(Collectors.toMap(e -&gt; e.getKey(), e -&gt; new ArrayList&lt;&gt;(e.getValue()), (k, v) -&gt; {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        throw new RuntimeException("collisions!!!");<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      }, () -&gt; new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR)));<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  /**<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * Construct the mutation with user defined data.<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   * @param row row. CAN'T be null<a name="line.130"></a>
+<span class="sourceLineNo">131</span>   * @param ts timestamp<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * @param familyMap the map to collect all cells internally. CAN'T be null<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   */<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  protected Mutation(byte[] row, long ts, NavigableMap&lt;byte [], List&lt;Cell&gt;&gt; familyMap) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    this.row = Preconditions.checkNotNull(row);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    if (row.length == 0) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      throw new IllegalArgumentException("Row can't be empty");<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    this.ts = ts;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    this.familyMap = Preconditions.checkNotNull(familyMap);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  }<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>  @Override<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  public CellScanner cellScanner() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    return CellUtil.createCellScanner(getFamilyCellMap());<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>  /**<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * Creates an empty list if one doesn't exist for the given column family<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   * or else it returns the associated list of Cell objects.<a name="line.150"></a>
+<span class="sourceLineNo">151</span>   *<a name="line.151"></a>
+<span class="sourceLineNo">152</span>   * @param family column family<a name="line.152"></a>
+<span class="sourceLineNo">153</span>   * @return a list of Cell objects, returns an empty list if one doesn't exist.<a name="line.153"></a>
+<span class="sourceLineNo">154</span>   */<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  List&lt;Cell&gt; getCellList(byte[] family) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>    List&lt;Cell&gt; list = this.familyMap.get(family);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    if (list == null) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      list = new ArrayList&lt;&gt;();<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      this.familyMap.put(family, list);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    return list;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  /*<a name="line.164"></a>
+<span class="sourceLineNo">165</span>   * Create a KeyValue with this objects row key and the Put identifier.<a name="line.165"></a>
+<span class="sourceLineNo">166</span>   *<a name="line.166"></a>
+<span class="sourceLineNo">167</span>   * @return a KeyValue with this objects row key and the Put identifier.<a name="line.167"></a>
+<span class="sourceLineNo">168</span>   */<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  KeyValue createPutKeyValue(byte[] family, byte[] qualifier, long ts, byte[] value) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    return new KeyValue(this.row, family, qualifier, ts, KeyValue.Type.Put, value);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * Create a KeyValue with this objects row key and the Put identifier.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   * @param family<a name="line.175"></a>
+<span class="sourceLineNo">176</span>   * @param qualifier<a name="line.176"></a>
+<span class="sourceLineNo">177</span>   * @param ts<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * @param value<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * @param tags - Specify the Tags as an Array<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * @return a KeyValue with this objects row key and the Put identifier.<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  KeyValue createPutKeyValue(byte[] family, byte[] qualifier, long ts, byte[] value, Tag[] tags) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    KeyValue kvWithTag = new KeyValue(this.row, family, qualifier, ts, value, tags);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    return kvWithTag;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  }<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>  /*<a name="line.187"></a>
+<span class="sourceLineNo">188</span>   * Create a KeyValue with this objects row key and the Put identifier.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>   *<a name="line.189"></a>
+<span class="sourceLineNo">190</span>   * @return a KeyValue with this objects row key and the Put identifier.<a name="line.190"></a>
+<span class="sourceLineNo">191</span>   */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  KeyValue createPutKeyValue(byte[] family, ByteBuffer qualifier, long ts, ByteBuffer value,<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      Tag[] tags) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    return new KeyValue(this.row, 0, this.row == null ? 0 : this.row.length,<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        family, 0, family == null ? 0 : family.length,<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        qualifier, ts, KeyValue.Type.Put, value, tags != null ? Arrays.asList(tags) : null);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
+<span class="sourceLineNo">198</span><a name="line.198"></a>
+<span class="sourceLineNo">199</span>  /**<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   * Compile the column family (i.e. schema) information<a name="line.200"></a>
+<span class="sourceLineNo">201</span>   * into a Map. Useful for parsing and aggregation by debugging,<a name="line.201"></a>
+<span class="sourceLineNo">202</span>   * logging, and administration tools.<a name="line.202"></a>
+<span class="sourceLineNo">203</span>   * @return Map<a name="line.203"></a>
+<span class="sourceLineNo">204</span>   */<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  @Override<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  public Map&lt;String, Object&gt; getFingerprint() {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    Map&lt;String, Object&gt; map = new HashMap&lt;&gt;();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    List&lt;String&gt; families = new ArrayList&lt;&gt;(this.familyMap.entrySet().size());<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    // ideally, we would also include table information, but that information<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // is not stored in each Operation instance.<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    map.put("families", families);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry : this.familyMap.entrySet()) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      families.add(Bytes.toStringBinary(entry.getKey()));<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    }<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    return map;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>  /**<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * Compile the details beyond the scope of getFingerprint (row, columns,<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   * timestamps, etc.) into a Map along with the fingerprinted information.<a name="line.220"></a>
+<span class="sourceLineNo">221</span>   * Useful for debugging, logging, and administration tools.<a name="line.221"></a>
+<span class="sourceLineNo">222</span>   * @param maxCols a limit on the number of columns output prior to truncation<a name="line.222"></a>
+<span class="sourceLineNo">223</span>   * @return Map<a name="line.223"></a>
+<span class="sourceLineNo">224</span>   */<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  @Override<a name="line.225"></a>
+<span class="sourceLineNo">226</span>  public Map&lt;String, Object&gt; toMap(int maxCols) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    // we start with the fingerprint map and build on top of it.<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    Map&lt;String, Object&gt; map = getFingerprint();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    // replace the fingerprint's simple list of families with a<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    // map from column families to lists of qualifiers and kv details<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    Map&lt;String, List&lt;Map&lt;String, Object&gt;&gt;&gt; columns = new HashMap&lt;&gt;();<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    map.put("families", columns);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    map.put("row", Bytes.toStringBinary(this.row));<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    int colCount = 0;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    // iterate through all column families affected<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    for (Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry : this.familyMap.entrySet()) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      // map from this family to details for each cell affected within the family<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      List&lt;Map&lt;String, Object&gt;&gt; qualifierDetails = new ArrayList&lt;&gt;();<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      columns.put(Bytes.toStringBinary(entry.getKey()), qualifierDetails);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      colCount += entry.getValue().size();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      if (maxCols &lt;= 0) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        continue;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      // add details for each cell<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      for (Cell cell: entry.getValue()) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        if (--maxCols &lt;= 0) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span>          continue;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>        }<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        Map&lt;String, Object&gt; cellMap = cellToStringMap(cell);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>        qualifierDetails.add(cellMap);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    }<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    map.put("totalColumns", colCount);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    // add the id if set<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    if (getId() != null) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      map.put("id", getId());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    }<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    // Add the TTL if set<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    // Long.MAX_VALUE is the default, and is interpreted to mean this attribute<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    // has not been set.<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    if (getTTL() != Long.MAX_VALUE) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      map.put("ttl", getTTL());<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    map.put("ts", this.ts);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    return map;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  private static Map&lt;String, Object&gt; cellToStringMap(Cell c) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    Map&lt;String, Object&gt; stringMap = new HashMap&lt;&gt;();<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    stringMap.put("qualifier", Bytes.toStringBinary(c.getQualifierArray(), c.getQualifierOffset(),<a name="line.270"></a>
+<span class="sourceLineNo">271</span>                c.getQualifierLength()));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    stringMap.put("timestamp", c.getTimestamp());<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    stringMap.put("vlen", c.getValueLength());<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    List&lt;Tag&gt; tags = PrivateCellUtil.getTags(c);<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    if (tags != null) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      List&lt;String&gt; tagsString = new ArrayList&lt;&gt;(tags.size());<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      for (Tag t : tags) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        tagsString<a name="line.278"></a>
+<span class="sourceLineNo">279</span>            .add((t.getType()) + ":" + Bytes.toStringBinary(Tag.cloneValue(t)));<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      }<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      stringMap.put("tag", tagsString);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    return stringMap;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  }<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>  /**<a name="line.286"></a>
+<span class="sourceLineNo">287</span>   * Set the durability for this mutation<a name="line.287"></a>
+<span class="sourceLineNo">288</span>   * @param d<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   */<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  public Mutation setDurability(Durability d) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    this.durability = d;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    return this;<a name="line.292"></a>
+<span class="sourceLineNo">293</span>  }<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>  /** Get the current durability */<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  public Durability getDurability() {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    return this.durability;<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  }<a name="line.298"></a>
+<span class="sourceLineNo">299</span><a name="line.299"></a>
+<span class="sourceLineNo">300</span>  /**<a name="line.300"></a>
+<span class="sourceLineNo">301</span>   * Method for retrieving the put's familyMap<a name="line.301"></a>
+<span class="sourceLineNo">302</span>   * @return familyMap<a name="line.302"></a>
+<span class="sourceLineNo">303</span>   */<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  public NavigableMap&lt;byte [], List&lt;Cell&gt;&gt; getFamilyCellMap() {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    return this.familyMap;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>  /**<a name="line.308"></a>
+<span class="sourceLineNo">309</span>   * Method to check if the familyMap is empty<a name="line.309"></a>
+<span class="sourceLineNo">310</span>   * @return true if empty, false otherwise<a name="line.310"></a>
+<span class="sourceLineNo">311</span>   */<a name="line.311"></a>
+<span class="sourceLineNo">312</span>  public boolean isEmpty() {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return familyMap.isEmpty();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>  }<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>  /**<a name="line.316"></a>
+<span class="sourceLineNo">317</span>   * Method for retrieving the delete's row<a name="line.317"></a>
+<span class="sourceLineNo">318</span>   * @return row<a name="line.318"></a>
+<span class="sourceLineNo">319</span>   */<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  @Override<a name="line.320"></a>
+<span class="sourceLineNo">321</span>  public byte [] getRow() {<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    return this.row;<a name="line.322"></a>
+<span class="sourceLineNo">323</span>  }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>  /**<a name="line.325"></a>
+<span class="sourceLineNo">326</span>   * @deprecated As of release 2.0.0, this will be removed in HBase 3.0.0.<a name="line.326"></a>
+<span class="sourceLineNo">327</span>   *             Use {@link Row#COMPARATOR} instead<a name="line.327"></a>
+<span class="sourceLineNo">328</span>   */<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  @Deprecated<a name="line.329"></a>
+<span class="sourceLineNo">330</span>  @Override<a name="line.330"></a>
+<span class="sourceLineNo">331</span>  public int compareTo(final Row d) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    return Bytes.compareTo(this.getRow(), d.getRow());<a name="line.332"></a>
+<span class="sourceLineNo">333</span>  }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span>  /**<a name="line.335"></a>
+<span class="sourceLineNo">336</span>   * Method for retrieving the timestamp.<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   *<a name="line.337"></a>
+<span class="sourceLineNo">338</span>   * @return timestamp<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   */<a name="line.339"></a>
+<span class="sourceLineNo">340</span>  public long getTimestamp() {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    return this.ts;<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>  /**<a name="line.344"></a>
+<span class="sourceLineNo">345</span>   * Marks that the clusters with the given clusterIds have consumed the mutation<a name="line.345"></a>
+<span class="sourceLineNo">346</span>   * @param clusterIds of the clusters that have consumed the mutation<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   */<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  public Mutation setClusterIds(List&lt;UUID&gt; clusterIds) {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    ByteArrayDataOutput out = ByteStreams.newDataOutput();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    out.writeInt(clusterIds.size());<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    for (UUID clusterId : clusterIds) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      out.writeLong(clusterId.getMostSignificantBits());<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      out.writeLong(clusterId.getLeastSignificantBits());<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    setAttribute(CONSUMED_CLUSTER_IDS, out.toByteArray());<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    return this;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>  /**<a name="line.359"></a>
+<span class="sourceLineNo">360</span>   * @return the set of clusterIds that have consumed the mutation<a name="line.360"></a>
+<span class="sourceLineNo">361</span>   */<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  public List&lt;UUID&gt; getClusterIds() {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    List&lt;UUID&gt; clusterIds = new ArrayList&lt;&gt;();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    byte[] bytes = getAttribute(CONSUMED_CLUSTER_IDS);<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    if(bytes != null) {<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      ByteArrayDataInput in = ByteStreams.newDataInput(bytes);<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      int numClusters = in.readInt();<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      for(int i=0; i&lt;numClusters; i++){<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        clusterIds.add(new UUID(in.readLong(), in.readLong()));<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    }<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    return clusterIds;<a name="line.372"></a>
+<span class="sourceLineNo">373</span>  }<a name="line.373"></a>
+<span class="sourceLineNo">374</span><a name="line.374"></a>
+<span class="sourceLineNo">375</span>  /**<a name="line.375"></a>
+<span class="sourceLineNo">376</span>   * Sets the visibility expression associated with cells in this Mutation.<a name="line.376"></a>
+<span class="sourceLineNo">377</span>   * @param expression<a name="line.377"></a>
+<span class="sourceLineNo">378</span>   */<a name="line.378"></a>
+<span class="sourceLineNo">379</span>  public Mutation setCellVisibility(CellVisibility expression) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    this.setAttribute(VisibilityConstants.VISIBILITY_LABELS_ATTR_KEY,<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        toCellVisibility(expression).toByteArray());<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    return this;<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>  /**<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   * @return CellVisibility associated with cells in this Mutation.<a name="line.386"></a>
+<span class="sourceLineNo">387</span>   * @throws DeserializationException<a name="line.387"></a>
+<span class="sourceLineNo">388</span>   */<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  public CellVisibility getCellVisibility() throws DeserializationException {<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    byte[] cellVisibilityBytes = this.getAttribute(VisibilityConstants.VISIBILITY_LABELS_ATTR_KEY);<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    if (cellVisibilityBytes == null) return null;<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    return toCellVisibility(cellVisibilityBytes);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>  /**<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * Create a protocol buffer CellVisibility based on a client CellVisibility.<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   *<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * @param cellVisibility<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * @return a protocol buffer CellVisibility<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  static ClientProtos.CellVisibility toCellVisibility(CellVisibility cellVisibility) {<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    ClientProtos.CellVisibility.Builder builder = ClientProtos.CellVisibility.newBuilder();<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    builder.setExpression(cellVisibility.getExpression());<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    return builder.build();<a name="line.404"></a>
+<span class="sourceLineNo">405</span>  }<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>  /**<a name="line.407"></a>
+<span class="sourceLineNo">408</span>   * Convert a protocol buffer CellVisibility to a client CellVisibility<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   *<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * @param proto<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   * @return the converted client CellVisibility<a name="line.411"></a>
+<span class="sourceLineNo">412</span>   */<a name="line.412"></a>
+<span class="sourceLineNo">413</span>  private static CellVisibility toCellVisibility(ClientProtos.CellVisibility proto) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    if (proto == null) return null;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    return new CellVisibility(proto.getExpression());<a name="line.415"></a>
+<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
+<span class="sourceLineNo">417</span><a name="line.417"></a>
+<span class="sourceLineNo">418</span>  /**<a name="line.418"></a>
+<span class="sourceLineNo">419</span>   * Convert a protocol buffer CellVisibility bytes to a client CellVisibility<a name="line.419"></a>
+<span class="sourceLineNo">420</span>   *<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   * @param protoBytes<a name="line.421"></a>
+<span class="sourceLineNo">422</span>   * @return the converted client CellVisibility<a name="line.422"></a>
+<span class="sourceLineNo">423</span>   * @throws DeserializationException<a name="line.423"></a>
+<span class="sourceLineNo">424</span>   */<a name="line.424"></a>
+<span class="sourceLineNo">425</span>  private static CellVisibility toCellVisibility(byte[] protoBytes) throws DeserializationException {<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    if (protoBytes == null) return null;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    ClientProtos.CellVisibility.Builder builder = ClientProtos.CellVisibility.newBuilder();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    ClientProtos.CellVisibility proto = null;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    try {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      ProtobufUtil.mergeFrom(builder, protoBytes);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      proto = builder.build();<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    } catch (IOException e) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      throw new DeserializationException(e);<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>    return toCellVisibility(proto);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>  }<a name="line.436"></a>
+<span class="sourceLineNo">437</span><a name="line.437"></a>
+<span class="sourceLineNo">438</span>  /**<a name="line.438"></a>
+<span class="sourceLineNo">439</span>   * Number of KeyValues carried by this Mutation.<a name="line.439"></a>
+<span class="sourceLineNo">440</span>   * @return the total number of KeyValues<a name="line.440"></a>
+<span class="sourceLineNo">441</span>   */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  public int size() {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    int size = 0;<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    for (List&lt;Cell&gt; cells : this.familyMap.values()) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      size += cells.size();<a name="line.445"></a>
+<span class="sourceLineNo">446</span>    }<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    return size;<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  }<a name="line.448"></a>
+<span class="sourceLineNo">449</span><a name="line.449"></a>
+<span class="sourceLineNo">450</span>  /**<a name="line.450"></a>
+<span class="sourceLineNo">451</span>   * @return the number of different families<a name="line.451"></a>
+<span class="sourceLineNo">452</span>   */<a name="line.452"></a>
+<span class="sourceLineNo">453</span>  public int numFamilies() {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    return familyMap.size();<a name="line.454"></a>
+<span class="sourceLineNo">455</span>  }<a name="line.455"></a>
+<span class="sourceLineNo">456</span><a name="line.456"></a>
+<span class="sourceLineNo">457</span>  /**<a name="line.457"></a>
+<span class="sourceLineNo">458</span>   * @return Calculate what Mutation adds to class heap size.<a name="line.458"></a>
+<span class="sourceLineNo">459</span>   */<a name="line.459"></a>
+<span class="sourceLineNo">460</span>  @Override<a name="line.460"></a>
+<span class="sourceLineNo">461</span>  public long heapSize() {<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    long heapsize = MUTATION_OVERHEAD;<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    // Adding row<a name="line.463"></a>
+<span class="sourceLineNo">464</span>    heapsize += ClassSize.align(ClassSize.ARRAY + this.row.length);<a name="line.464"></a>
+<span class="sourceLineNo">465</span><a name="line.465"></a>
+<span class="sourceLineNo">466</span>    // Adding map overhead<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    heapsize +=<a name="line.467"></a>
+<span class="sourceLineNo">468</span>      ClassSize.align(this.familyMap.size() * ClassSize.MAP_ENTRY);<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    for(Map.Entry&lt;byte [], List&lt;Cell&gt;&gt; entry : this.familyMap.entrySet()) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      //Adding key overhead<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      heapsize +=<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        ClassSize.align(ClassSize.ARRAY + entry.getKey().length);<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>      //This part is kinds tricky since the JVM can reuse references if you<a name="line.474"></a>
+<span class="sourceLineNo">475</span>      //store the same value, but have a good match with SizeOf at the moment<a name="line.475"></a>
+<span class="sourceLineNo">476</span>      //Adding value overhead<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      heapsize += ClassSize.align(ClassSize.ARRAYLIST);<a name="line.477"></a>
+<span class="sourceLineNo">478</span>      int size = entry.getValue().size();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      heapsize += ClassSize.align(ClassSize.ARRAY +<a name="line.479"></a>
+<span class="sourceLineNo">480</span>          size * ClassSize.REFERENCE);<a name="line.480"></a>
+<span class="sourceLineNo">481</span><a name="line.481"></a>
+<span class="sourceLineNo">482</span>      for (Cell cell : entry.getValue()) {<a name="line.482"></a>
+<span class="sourceLineNo">483</span>        heapsize += cell.heapSize();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      }<a name="line.484"></a>
+<span class="sourceLineNo">485</span>    }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    heapsize += getAttributeSize();<a name="line.486"></a>
+<span class="sourceLineNo">487</span>    heapsize += extraHeapSize();<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    return ClassSize.align(heapsize);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>  /**<a name="line.491"></a>
+<span class="sourceLineNo">492</span>   * @return The serialized ACL for this operation, or null if none<a name="line.492"></a>
+<span class="sourceLineNo">493</span>   */<a name="line.493"></a>
+<span class="sourceLineNo">494</span>  public byte[] getACL() {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>    return getAttribute(AccessControlConstants.OP_ATTRIBUTE_ACL);<a name="line.495"></a>
+<span class="sourceLineNo">496</span>  }<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>  /**<a name="line.498"></a>
+<span class="sourceLineNo">499</span>   * @param user User short name<a name="line.499"></a>
+<span class="sourceLineNo">500</span>   * @param perms Permissions for the user<a name="line.500"></a>
+<span class="sourceLineNo">501</span>   */<a name="line.501"></a>
+<span class="sourceLineNo">502</span>  public Mutation setACL(String user, Permission perms) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    setAttribute(AccessControlConstants.OP_ATTRIBUTE_ACL,<a name="line.503"></a>
+<span class="sourceLineNo">504</span>      AccessControlUtil.toUsersAndPermissions(user, perms).toByteArray());<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    return this;<a name="line.505"></a>
+<span class="sourceLineNo">506</span>  }<a name="line.506"></a>
+<span class="sourceLineNo">507</span><a name="line.507"></a>
+<span class="sourceLineNo">508</span>  /**<a name="line.508"></a>
+<span class="sourceLineNo">509</span>   * @param perms A map of permissions for a user or users<a name="line.509"></a>
+<span class="sourceLineNo">510</span>   */<a name="line.510"></a>
+<span class="sourceLineNo">511</span>  public Mutation setACL(Map&lt;String, Permission&gt; perms) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>    ListMultimap&lt;String, Permission&gt; permMap = ArrayListMultimap.create();<a name="line.512"></a>
+<span class="sourceLineNo">513</span>    for (Map.Entry&lt;String, Permission&gt; entry : perms.entrySet()) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span>      permMap.put(entry.getKey(), entry.getValue());<a name="line.514"></a>
+<span class="sourceLineNo">515</span>    }<a name="line.515"></a>
+<span class="sourceLineNo">516</span>    setAttribute(AccessControlConstants.OP_ATTRIBUTE_ACL,<a name="line.516"></a>
+<span class="sourceLineNo">517</span>      AccessControlUtil.toUsersAndPermissions(permMap).toByteArray());<a name="line.517"></a>
+<span class="sourceLineNo">518</span>    return this;<a name="line.518"></a>
+<span class="sourceLineNo">519</span>  }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>  /**<a name="line.521"></a>
+<span class="sourceLineNo">522</span>   * Return the TTL requested for the result of the mutation, in milliseconds.<a name="line.522"></a>
+<span class="sourceLineNo">523</span>   * @return the TTL requested for the result of the mutation, in milliseconds,<a name="line.523"></a>
+<span class="sourceLineNo">524</span>   * or Long.MAX_VALUE if unset<a name="line.524"></a>
+<span class="sourceLineNo">525</span>   */<a name="line.525"></a>
+<span class="sourceLineNo">526</span>  public long getTTL() {<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    byte[] ttlBytes = getAttribute(OP_ATTRIBUTE_TTL);<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    if (ttlBytes != null) {<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      return Bytes.toLong(ttlBytes);<a name="line.529"></a>
+<span class="sourceLineNo">530</span>    }<a name="line.530"></a>
+<span class="sourceLineNo">531</span>    return Long.MAX_VALUE;<a name="line.531"></a>
+<span class="sourceLineNo">532</span>  }<a name="line.532"></a>
+<span class="sourceLineNo">533</span><a name="line.533"></a>
+<span class="sourceLineNo">534</span>  /**<a name="line.534"></a>
+<span class="sourceLineNo">535</span>   * Set the TTL desired for the result of the mutation, in milliseconds.<a name="line.535"></a>
+<span class="sourceLineNo">536</span>   * @param ttl the TTL desired for the result of the mutation, in milliseconds<a name="line.536"></a>
+<span class="sourceLineNo">537</span>   * @return this<a name="line.537"></a>
+<span class="sourceLineNo">538</span>   */<a name="line.538"></a>
+<span class="sourceLineNo">539</span>  public Mutation setTTL(long ttl) {<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    setAttribute(OP_ATTRIBUTE_TTL, Bytes.toBytes(ttl));<a name="line.540"></a>
+<span class="sourceLineNo">541</span>    return this;<a name="line.541"></a>
+<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span>  /**<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * @return current value for returnResults<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>  // Used by Increment and Append only.<a name="line.547"></a>
+<span class="sourceLineNo">548</span>  @InterfaceAudience.Private<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  protected boolean isReturnResults() {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>    byte[] v = getAttribute(RETURN_RESULTS);<a name="line.550"></a>
+<span class="sourceLineNo">551</span>    return v == null ? true : Bytes.toBoolean(v);<a name="line.551"></a>
+<span class="sourceLineNo">552</span>  }<a name="line.552"></a>
+<span class="sourceLineNo">553</span><a name="line.553"></a>
+<span class="sourceLineNo">554</span>  @InterfaceAudience.Private<a name="line.554"></a>
+<span class="sourceLineNo">555</span>  // Used by Increment and Append only.<a name="line.555"></a>
+<span class="sourceLineNo">556</span>  protected Mutation setReturnResults(boolean returnResults) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    setAttribute(RETURN_RESULTS, Bytes.toBytes(returnResults));<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    return this;<a name="line.558"></a>
+<span class="sourceLineNo">559</span>  }<a name="line.559"></a>
+<span class="sourceLineNo">560</span><a name="line.560"></a>
+<span class="sourceLineNo">561</span>  /**<a name="line.561"></a>
+<span class="sourceLineNo">562</span>   * Subclasses should override this method to add the heap size of their own fields.<a name="line.562"></a>
+<span class="sourceLineNo">563</span>   * @return the heap size to add (will be aligned).<a name="line.563"></a>
+<span class="sourceLineNo">564</span>   */<a name="line.564"></a>
+<span class="sourceLineNo">565</span>  protected long extraHeapSize(){<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    return 0L;<a name="line.566"></a>
+<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>  /**<a name="line.569"></a>
+<span class="sourceLineNo">570</span>   * Set the timestamp of the delete.<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>  public Mutation setTimestamp(long timestamp) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    if (timestamp &lt; 0) {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>      throw new IllegalArgumentException("Timestamp cannot be negative. ts=" + timestamp);<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    }<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    this.ts = timestamp;<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    return this;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>  }<a name="line.578"></a>
+<span class="sourceLineNo">579</span><a name="line.579"></a>
+<span class="sourceLineNo">580</span>  /**<a name="line.580"></a>
+<span class="sourceLineNo">581</span>   * A convenience method to determine if this object's familyMap contains<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   * a value assigned to the given family &amp;amp; qualifier.<a name="line.582"></a>
+<span class="sourceLineNo">583</span>   * Both given arguments must match the KeyValue object to return true.<a name="line.583"></a>
+<span class="sourceLineNo">584</span>   *<a name="line.584"></a>
+<span class="sourceLineNo">585</span>   * @param family column family<a name="line.585"></a>
+<span class="sourceLineNo">586</span>   * @param qualifier column qualifier<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   * @return returns true if the given family and qualifier already has an<a name="line.587"></a>
+<span class="sourceLineNo">588</span>   * existing KeyValue object in the family map.<a name="line.588"></a>
+<span class="sourceLineNo">589</span>   */<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  public boolean has(byte [] family, byte [] qualifier) {<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    return has(family, qualifier, this.ts, HConstants.EMPTY_BYTE_ARRAY, true, true);<a name="line.591"></a>
+<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span>  /**<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   * A convenience method to determine if this object's familyMap contains<a name="line.595"></a>
+<span class="sourceLineNo">596</span>   * a value assigned to the given family, qualifier and timestamp.<a name="line.596"></a>
+<span class="sourceLineNo">597</span>   * All 3 given arguments must match the KeyValue object to return true.<a name="line.597"></a>
+<span class="sourceLineNo">598</span>   *<a name="line.598"></a>
+<span class="sourceLineNo">599</span>   * @param family column family<a name="line.599"></a>
+<span class="sourceLineNo">600</span>   * @param qualifier column qualifier<a name="line.600"></a>
+<span class="sourceLineNo">601</span>   * @param ts timestamp<a name="line.601"></a>
+<span class="sourceLineNo">602</span>   * @return returns true if the given family, qualifier and timestamp already has an<a name="line.602"></a>
+<span class="sourceLineNo">603</span>   * existing KeyValue object in the family map.<a name="line.603"></a>
+<span class="sourceLineNo">604</span>   */<a name="line.604"></a>
+<span class="sourceLineNo">605</span>  public boolean has(byte [] family, byte [] qualifier, long ts) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    return has(family, qualifier, ts, HConstants.EMPTY_BYTE_ARRAY, false, true);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>  }<a name="line.607"></a>
+<span class="sourceLineNo">608</span><a name="line.608"></a>
+<span class="sourceLineNo">609</span>  /**<a name="line.609"></a>
+<span class="sourceLineNo">610</span>   * A convenience method to determine if this object's familyMap contains<a name="line.610"></a>
+<span class="sourceLineNo">611</span>   * a value assigned to the given family, qualifier and timestamp.<a name="line.611"></a>
+<span class="sourceLineNo">612</span>   * All 3 given arguments must match the KeyValue object to return true.<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   *<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * @param family column family<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   * @param qualifier column qualifier<a name="line.615"></a>
+<span class="sourceLineNo">616</span>   * @param value value to check<a name="line.616"></a>
+<span class="sourceLineNo">617</span>   * @return returns true if the given family, qualifier and value already has an<a name="line.617"></a>
+<span class="sourceLineNo">618</span>   * existing KeyValue object in the family map.<a name="line.618"></a>
+<span class="sourceLineNo">619</span>   */<a name="line.619"></a>
+<span class="sourceLineNo">620</span>  public boolean has(byte [] family, byte [] qualifier, byte [] value) {<a name="line.620"></a>
+<span class="sourceLineNo">621</span>    return has(family, qualifier, this.ts, value, true, false);<a name="line.621"></a>
+<span class="sourceLineNo">622</span>  }<a name="line.622"></a>
+<span class="sourceLineNo">623</span><a name="line.623"></a>
+<span class="sourceLineNo">624</span>  /**<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   * A convenience method to determine if this object's familyMap contains<a name="line.625"></a>
+<span class="sourceLineNo">626</span>   * the given value assigned to the given family, qualifier and timestamp.<a name="line.626"></a>
+<span class="sourceLineNo">627</span>   * All 4 given arguments must match the KeyValue object to return true.<a name="line.627"></a>
+<span class="sourceLineNo">628</span>   *<a name="line.628"></a>
+<span class="sourceLineNo">629</span>   * @param family column family<a name="line.629"></a>
+<span class="sourceLineNo">630</span>   * @param qualifier column qualifier<a name="line.630"></a>
+<span class="sourceLineNo">631</span>   * @param ts timestamp<a name="line.631"></a>
+<span class="sourceLineNo">632</span>   * @param value value to check<a name="line.632"></a>
+<span class="sourceLineNo">633</span>   * @return returns true if the given family, qualifier timestamp and value<a name="line.633"></a>
+<span class="sourceLineNo">634</span>   *   already has an existing KeyValue object in the family map.<a name="line.634"></a>
+<span class="sourceLineNo">635</span>   */<a name="line.635"></a>
+<span class="sourceLineNo">636</span>  public boolean has(byte [] family, byte [] qualifier, long ts, byte [] value) {<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    return has(family, qualifier, ts, value, false, false);<a name="line.637"></a>
+<span class="sourceLineNo">638</span>  }<a name="line.638"></a>
+<span class="sourceLineNo">639</span><a name="line.639"></a>
+<span class="sourceLineNo">640</span>  /**<a name="line.640"></a>
+<span class="sourceLineNo">641</span>   * Returns a list of all KeyValue objects with matching column family and qualifier.<a name="line.641"></a>
+<span class="sourceLineNo">642</span>   *<a name="line.642"></a>
+<span class="sourceLineNo">643</span>   * @param family column family<a name="line.643"></a>
+<span class="sourceLineNo">644</span>   * @param qualifier column qualifier<a name="line.644"></a>
+<span class="sourceLineNo">645</span>   * @return a list of KeyValue objects with the matching family and qualifier,<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   *   returns an empty list if one doesn't exist for the given family.<a name="line.646"></a>
+<span class="sourceLineNo">647</span>   */<a name="line.647"></a>
+<span class="sourceLineNo">648</span>  public List&lt;Cell&gt; get(byte[] family, byte[] qualifier) {<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    List&lt;Cell&gt; filteredList = new ArrayList&lt;&gt;();<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    for (Cell cell: getCellList(family)) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>      if (CellUtil.matchingQualifier(cell, qualifier)) {<a name="line.651"></a>
+<span class="sourceLineNo">652</span>        filteredList.add(cell);<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      }<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    }<a name="line.654"></a>
+<span class="sourceLineNo">655</span>    return filteredList;<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>  /*<a name="line.658"></a>
+<span class="sourceLineNo">659</span>   * Private method to determine if this object's familyMap contains<a name="line.659"></a>
+<span class="sourceLineNo">660</span>   * the given value assigned to the given family, qualifier and timestamp<a name="line.660"></a>
+<span class="sourceLineNo">661</span>   * respecting the 2 boolean arguments<a name="line.661"></a>
+<span class="sourceLineNo">662</span>   *<a name="line.662"></a>
+<span class="sourceLineNo">663</span>   * @param family<a name="line.663"></a>
+<span class="sourceLineNo">664</span>   * @param qualifier<a name="line.664"></a>
+<span class="sourceLineNo">665</span>   * @param ts<a name="line.665"></a>
+<span class="sourceLineNo">666</span>   * @param value<a name="line.666"></a>
+<span class="sourceLineNo">667</span>   * @param ignoreTS<a name="line.667"></a>
+<span class="sourceLineNo">668</span>   * @param ignoreValue<a name="line.668"></a>
+<span class="sourceLineNo">669</span>   * @return returns true if the given family, qualifier timestamp and value<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * already has an existing KeyValue object in the family map.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   */<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  protected boolean has(byte[] family, byte[] qualifier, long ts, byte[] value,<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      boolean ignoreTS, boolean ignoreValue) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>    List&lt;Cell&gt; list = getCellList(family);<a name="line.674"></a>
+<span class="sourceLineNo">675</span>    if (list.isEmpty()) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>      return false;<a name="line.676"></a>
+<span class="sourceLineNo">677</span>    }<a name="line.677"></a>
+<span class="sourceLineNo">678</span>    // Boolean analysis of ignoreTS/ignoreValue.<a name="line.678"></a>
+<span class="sourceLineNo">679</span>    // T T =&gt; 2<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    // T F =&gt; 3 (first is always true)<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    // F T =&gt; 2<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    // F F =&gt; 1<a name="line.682"></a>
+<span class="sourceLineNo">683</span>    if (!ignoreTS &amp;&amp; !ignoreValue) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>      for (Cell cell : list) {<a name="line.684"></a>
+<span class="sourceLineNo">685</span>        if (CellUtil.matchingFamily(cell, family) &amp;&amp;<a name="line.685"></a>
+<span class="sourceLineNo">686</span>            CellUtil.matchingQualifier(cell, qualifier)  &amp;&amp;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>            CellUtil.matchingValue(cell, value) &amp;&amp;<a name="line.687"></a>
+<span class="sourceLineNo">688</span>            cell.getTimestamp() == ts) {<a name="line.688"></a>
+<span class="sourceLineNo">689</span>          return true;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>        }<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      }<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    } else if (ignoreValue &amp;&amp; !ignoreTS) {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      for (Cell cell : list) {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        if (CellUtil.matchingFamily(cell, family) &amp;&amp; CellUtil.matchingQualifier(cell, qualifier)<a name="line.694"></a>
+<span class="sourceLineNo">695</span>            &amp;&amp; cell.getTimestamp() == ts) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>          return true;<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        }<a name="line.697"></a>
+<span class="sourceLineNo">698</span>      }<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    } else if (!ignoreValue &amp;&amp; ignoreTS) {<a name="line.699"></a>
+<span class="sourceLineNo">700</span>      for (Cell cell : list) {<a name="line.700"></a>
+<span class="sourceLineNo">701</span>        if (CellUtil.matchingFamily(cell, family) &amp;&amp; CellUtil.matchingQualifier(cell, qualifier)<a name="line.701"></a>
+<span class="sourceLineNo">702</span>            &amp;&amp; CellUtil.matchingValue(cell, value)) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>          return true;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>        }<a name="line.704"></a>
+<span class="sourceLineNo">705</span>      }<a name="line.705"></a>
+<span class="sourceLineNo">706</span>    } else {<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      for (Cell cell : list) {<a name="line.707"></a>
+<span class="sourceLineNo">708</span>        if (CellUtil.matchingFamily(cell, family) &amp;&amp;<a name="line.708"></a>
+<span class="sourceLineNo">709</span>            CellUtil.matchingQualifier(cell, qualifier)) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>          return true;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>        }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>      }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    }<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    return false;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>  }<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>  /**<a name="line.717"></a>
+<span class="sourceLineNo">718</span>   * @param row Row to check<a name="line.718"></a>
+<span class="sourceLineNo">719</span>   * @throws IllegalArgumentException Thrown if &lt;code&gt;row&lt;/code&gt; is empty or null or<a name="line.719"></a>
+<span class="sourceLineNo">720</span>   * &amp;gt; {@link HConstants#MAX_ROW_LENGTH}<a name="line.720"></a>
+<span class="sourceLineNo">721</span>   * @return &lt;code&gt;row&lt;/code&gt;<a name="line.721"></a>
+<span class="sourceLineNo">722</span>   */<a name="line.722"></a>
+<span class="sourceLineNo">723</span>  static byte [] checkRow(final byte [] row) {<a name="line.723"></a>
+<span class="sourceLineNo">724</span>    return checkRow(row, 0, row == null? 0: row.length);<a name="line.724"></a>
+<span class="sourceLineNo">725</span>  }<a name="line.725"></a>
+<span class="sourceLineNo">726</span><a name="line.726"></a>
+<span class="sourceLineNo">727</span>  /**<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @param row Row to check<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   * @param offset<a name="line.729"></a>
+<span class="sourceLineNo">730</span>   * @param length<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   * @throws IllegalArgumentException Thrown if &lt;code&gt;row&lt;/code&gt; is empty or null or<a name="line.731"></a>
+<span class="sourceLineNo">732</span>   * &amp;gt; {@link HConstants#MAX_ROW_LENGTH}<a name="line.732"></a>
+<span class="sourceLineNo">733</span>   * @return &lt;code&gt;row&lt;/code&gt;<a name="line.733"></a>
+<span class="sourceLineNo">734</span>   */<a name="line.734"></a>
+<span class="sourceLineNo">735</span>  static byte [] checkRow(final byte [] row, final int offset, final int length) {<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    if (row == null) {<a name="line.736"></a>
+<span class="sourceLineNo">737</span>      throw new IllegalArgumentException("Row buffer is null");<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    }<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    if (length == 0) {<a name="line.739"></a>
+<span class="sourceLineNo">740</span>      throw new IllegalArgumentException("Row length is 0");<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    }<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    if (length &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.742"></a>
+<span class="sourceLineNo">743</span>      throw new IllegalArgumentException("Row length " + length + " is &gt; " +<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        HConstants.MAX_ROW_LENGTH);<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    }<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    return row;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>  }<a name="line.747"></a>
+<span class="sourceLineNo">748</span><a name="line.748"></a>
+<span class="sourceLineNo">749</span>  static void checkRow(ByteBuffer row) {<a name="line.749"></a>
+<span class="sourceLineNo">750</span>    if (row == null) {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>      throw new IllegalArgumentException("Row buffer is null");<a name="line.751"></a>
+<span class="sourceLineNo">752</span>    }<a name="line.752"></a>
+<span class="sourceLineNo">753</span>    if (row.remaining() == 0) {<a name="line.753"></a>
+<span class="sourceLineNo">754</span>      throw new IllegalArgumentException("Row length is 0");<a name="line.754"></a>
+<span class="sourceLineNo">755</span>    }<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    if (row.remaining() &gt; HConstants.MAX_ROW_LENGTH) {<a name="line.756"></a>
+<span class="sourceLineNo">757</span>      throw new IllegalArgumentException("Row length " + row.remaining() + " is &gt; " +<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          HConstants.MAX_ROW_LENGTH);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>    }<a name="line.759"></a>
+<span class="sourceLineNo">760</span>  }<a name="line.760"></a>
+<span class="sourceLineNo">761</span><a name="line.761"></a>
+<span class="sourceLineNo">762</span>  Mutation add(Cell cell) throws IOException {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>    //Checking that the row of the kv is the same as the mutation<a name="line.763"></a>
+<span class="sourceLineNo">764</span>    // TODO: It is fraught with risk if user pass the wrong row.<a name="line.764"></a>
+<span class="sourceLineNo">765</span>    // Throwing the IllegalArgumentException is more suitable I'd say.<a name="line.765"></a>
+<span class="sourceLineNo">766</span>    if (!CellUtil.matchingRows(cell, this.row)) {<a name="line.766"></a>
+<span class="sourceLineNo">767</span>      throw new WrongRowIOException("The row in " + cell.toString() +<a name="line.767"></a>
+<span class="sourceLineNo">768</span>        " doesn't match the original one " +  Bytes.toStringBinary(this.row));<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    }<a name="line.769"></a>
+<span class="sourceLineNo">770</span><a name="line.770"></a>
+<span class="sourceLineNo">771</span>    byte[] family;<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>    if (cell instanceof IndividualBytesFieldCell) {<a name="line.773"></a>
+<span class="sourceLineNo">774</span>      family = cell.getFamilyArray();<a name="line.774"></a>
+<span class="sourceLineNo">775</span>    } else {<a name="line.775"></a>
+<span class="sourceLineNo">776</span>      family = CellUtil.cloneFamily(cell);<a name="line.776"></a>
+<span class="sourceLineNo">777</span>    }<a name="line.777"></a>
+<span class="sourceLineNo">778</span><a name="line.778"></a>
+<span class="sourceLineNo">779</span>    if (family == null || family.length == 0) {<a name="line.779"></a>
+<span class="sourceLineNo">780</span>      throw new IllegalArgumentException("Family cannot be null");<a name="line.780"></a>
+<span class="sourceLineNo">781</span>    }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span>    if (cell instanceof ExtendedCell) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>      getCellList(family).add(cell);<a name="line.784"></a>
+<span class="sourceLineNo">785</span>    } else {<a name="line.785"></a>
+<span class="sourceLineNo">786</span>      getCellList(family).add(new CellWrapper(cell));<a name="line.786"></a>
+<span class="sourceLineNo">787</span>    }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>    return this;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>  }<a name="line.789"></a>
+<span class="sourceLineNo">790</span><a name="line.790"></a>
+<span class="sourceLineNo">791</span>  /**<a name="line.791"></a>
+<span class="sourceLineNo">792</span>   * get a CellBuilder instance that already has relevant Type and Row set.<a name="line.792"></a>
+<span class="sourceLineNo">793</span>   * @param cellBuilderType e.g CellBuilderType.SHALLOW_COPY<a name="line.793"></a>
+<span class="sourceLineNo">794</span>   * @return CellBuilder which already has relevant Type and Row set.<a name="line.794"></a>
+<span class="sourceLineNo">795</span>   */<a name="line.795"></a>
+<span class="sourceLineNo">796</span>  public abstract CellBuilder getCellBuilder(CellBuilderType cellBuilderType);<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span>  /**<a name="line.798"></a>
+<span class="sourceLineNo">799</span>   * get a CellBuilder instance that already has relevant Type and Row set.<a name="line.799"></a>
+<span class="sourceLineNo">800</span>   * the default CellBuilderType is CellBuilderType.SHALLOW_COPY<a name="line.800"></a>
+<span class="sourceLineNo">801</span>   * @return CellBuilder which already has relevant Type and Row set.<a name="line.801"></a>
+<span class="sourceLineNo">802</span>   */<a name="line.802"></a>
+<span class="sourceLineNo">803</span>  public CellBuilder getCellBuilder() {<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    return getCellBuilder(CellBuilderType.SHALLOW_COPY);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>  }<a name="line.805"></a>
+<span class="sourceLineNo">806</span><a name="line.806"></a>
+<span class="sourceLineNo">807</span>  /**<a name="line.807"></a>
+<span class="sourceLineNo">808</span>   * get a CellBuilder instance that already has relevant Type and Row set.<a name="line.808"></a>
+<span class="sourceLineNo">809</span>   * @param cellBuilderType e.g CellBuilderType.SHALLOW_COPY<a name="line.809"></a>
+<span class="sourceLineNo">810</span>   * @param cellType e.g Cell.Type.Put<a name="line.810"></a>
+<span class="sourceLineNo">811</span>   * @return CellBuilder which already has relevant Type and Row set.<a name="line.811"></a>
+<span class="sourceLineNo">812</span>     */<a name="line.812"></a>
+<span class="sourceLineNo">813</span>  protected CellBuilder getCellBuilder(CellBuilderType cellBuilderType, Cell.Type cellType) {<a name="line.813"></a>
+<span class="sourceLineNo">814</span>    CellBuilder builder = CellBuilderFactory.create(cellBuilderType).setRow(row).setType(cellType);<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    return new CellBuilder() {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>      @Override<a name="line.816"></a>
+<span class="sourceLineNo">817</span>      public CellBuilder setRow(byte[] row) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>        return this;<a name="line.818"></a>
+<span class="sourceLineNo">819</span>      }<a name="line.819"></a>
+<span class="sourceLineNo">820</span><a name="line.820"></a>
+<span class="sourceLineNo">821</span>      @Override<a name="line.821"></a>
+<span class="sourceLineNo">822</span>      public CellBuilder setType(Cell.Type type) {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        return this;<a name="line.823"></a>
+<span class="sourceLineNo">824</span>      }<a name="line.824"></a>
+<span class="sourceLineNo">825</span><a name="line.825"></a>
+<span class="sourceLineNo">826</span>      @Override<a name="line.826"></a>
+<span class="sourceLineNo">827</span>      public CellBuilder setRow(byte[] row, int rOffset, int rLength) {<a name="line.827"></a>
+<span class="sourceLineNo">828</span>        return this;<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      }<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>      @Override<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      public CellBuilder setFamily(byte[] family) {<a name="line.832"></a>
+<span class="sourceLineNo">833</span>        builder.setFamily(family);<a name="line.833"></a>
+<span class="sourceLineNo">834</span>        return this;<a name="line.834"></a>
+<span class="sourceLineNo">835</span>      }<a name="line.835"></a>
+<span class="sourceLineNo">836</span><a name="line.836"></a>
+<span class="sourceLineNo">837</span>      @Override<a name="line.837"></a>
+<span class="sourceLineNo">838</span>      public CellBuilder setFamily(byte[] family, int fOffset, int fLength) {<a name="line.838"></a>
+<span class="sourceLineNo">839</span>        builder.setFamily(family, fOffset, fLength);<a name="line.839"></a>
+<span class="sourceLineNo">840</span>        return this;<a name="line.840"></a>
+<span class="sourceLineNo">841</span>      }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>      @Override<a name="line.843"></a>
+<span class="sourceLineNo">844</span>      public CellBuilder setQualifier(byte[] qualifier) {<a name="line.844"></a>
+<span class="sourceLineNo">845</span>        builder.setQualifier(qualifier);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>        return this;<a name="line.846"></a>
+<span class="sourceLineNo">847</span>      }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>      @Override<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      public CellBuilder setQualifier(byte[] qualifier, int qOffset, int qLength) {<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        builder.setQualifier(qualifier, qOffset, qLength);<a name="line.851"></a>
+<span class="sourceLineNo">852</span>        return this;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>      }<a name="line.853"></a>
+<span class="sourceLineNo">854</span><a name="line.854"></a>
+<span class="sourceLineNo">855</span>      @Override<a name="line.855"></a>
+<span class="sourceLineNo">856</span>      public CellBuilder setTimestamp(long timestamp) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>        builder.setTimestamp(timestamp);<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        return this;<a name="line.858"></a>
+<span class="sourceLineNo">859</span>      }<a name="line.859"></a>
+<span class="sourceLineNo">860</span><a name="line.860"></a>
+<span class="sourceLineNo">861</span>      @Override<a name="line.861"></a>
+<span class="sourceLineNo">862</span>      public CellBuilder setValue(byte[] value) {<a name="line.862"></a>
+<span class="sourceLineNo">863</span>        builder.setValue(value);<a name="line.863"></a>
+<span class="sourceLineNo">864</span>        return this;<a name="line.864"></a>
+<span class="sourceLineNo">865</span>      }<a name="line.865"></a>
+<span class="sourceLineNo">866</span><a name="line.866"></a>
+<span class="sourceLineNo">867</span>      @Override<a name="line.867"></a>
+<span class="sourceLineNo">868</span>      public CellBuilder setValue(byte[] value, int vOffset, int vLength) {<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        builder.setValue(value, vOffset, vLength);<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        return this;<a name="line.870"></a>
+<span class="sourceLineNo">871</span>      }<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span>      @Override<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      public Cell build() {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        return builder.build();<a name="line.875"></a>
+<span class="sourceLineNo">876</span>      }<a name="line.876"></a>
+<span class="sourceLineNo">877</span><a name="line.877"></a>
+<span class="sourceLineNo">878</span>      @Override<a name="line.878"></a>
+<span class="sourceLineNo">879</span>      public CellBuilder clear() {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>        builder.clear();<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        // reset the row and type<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        builder.setRow(row);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        builder.setType(cellType);<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        return this;<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    };<a name="line.886"></a>
+<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>  private static final class CellWrapper implements ExtendedCell {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    private static final long FIXED_OVERHEAD = ClassSize.align(<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      ClassSize.OBJECT              // object header<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        + KeyValue.TIMESTAMP_SIZE       // timestamp<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        + Bytes.SIZEOF_LONG             // sequence id<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        + 1 * ClassSize.REFERENCE);     // references to cell<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    private final Cell cell;<a name="line.895"></a>
+<span class="sourceLineNo">896</span>    private long sequenceId;<a name="line.896"></a>
+<span class="sourceLineNo">897</span>    private long timestamp;<a name="line.897"></a>
+<span class="sourceLineNo">898</span><a name="line.898"></a>
+<span class="sourceLineNo">899</span>    CellWrapper(Cell cell) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>      assert !(cell instanceof ExtendedCell);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>      this.cell = cell;<a name="line.901"></a>
+<span class="sourceLineNo">902</span>      this.sequenceId = cell.getSequenceId();<a name="line.902"></a>
+<span class="sourceLineNo">903</span>      this.timestamp = cell.getTimestamp();<a name="line.903"></a>
+<span class="sourceLineNo">904</span>    }<a name="line.904"></a>
+<span class="sourceLineNo">905</span><a name="line.905"></a>
+<span class="sourceLineNo">906</span>    @Override<a name="line.906"></a>
+<span class="sourceLineNo">907</span>    public void setSequenceId(long seqId) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>      sequenceId = seqId;<a name="line.908"></a>
+<span class="sourceLineNo">909</span>    }<a name="line.909"></a>
+<span class="sourceLineNo">910</span><a name="line.910"></a>
+<span class="sourceLineNo">911</span>    @Override<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    public void setTimestamp(long ts) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      timestamp = ts;<a name="line.913"></a>
+<span class="sourceLineNo">914</span>    }<a name="line.914"></a>
+<span class="sourceLineNo">915</span><a name="line.915"></a>
+<span class="sourceLineNo">916</span>    @Override<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    public void setTimestamp(byte[] ts) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span>      timestamp = Bytes.toLong(ts);<a name="line.918"></a>
+<span class="sourceLineNo">919</span>    }<a name="line.919"></a>
+<span class="sourceLineNo">920</span><a name="line.920"></a>
+<span class="sourceLineNo">921</span>    @Override<a name="line.921"></a>
+<span class="sourceLineNo">922</span>    public long getSequenceId() {<a name="line.922"></a>
+<span class="sourceLineNo">923</span>      return sequenceId;<a name="line.923"></a>
+<span class="sourceLineNo">924</span>    }<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span>    @Override<a name="line.926"></a>
+<span class="sourceLineNo">927</span>    public byte[] getValueArray() {<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      return cell.getValueArray();<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    }<a name="line.929"></a>
+<span class="sourceLineNo">930</span><a name="line.930"></a>
+<span class="sourceLineNo">931</span>    @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    public int getValueOffset() {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>      return cell.getValueOffset();<a name="line.933"></a>
+<span class="sourceLineNo">934</span>    }<a name="line.934"></a>
+<span class="sourceLineNo">935</span><a name="line.935"></a>
+<span class="sourceLineNo">936</span>    @Override<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    public int getValueLength() {<a name="line.937"></a>
+<span class="sourceLineNo">938</span>      return cell.getValueLength();<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    }<a name="line.939"></a>
+<span class="sourceLineNo">940</span><a name="line.940"></a>
+<span class="sourceLineNo">941</span>    @Override<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    public byte[] getTagsArray() {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>      return cell.getTagsArray();<a name="line.943"></a>
+<span class="sourceLineNo">944</span>    }<a name="line.944"></a>
+<span class="sourceLineNo">945</span><a name="line.945"></a>
+<span class="sourceLineNo">946</span>    @Override<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    public int getTagsOffset() {<a name="line.947"></a>
+<span class="sourceLineNo">948</span>      return cell.getTagsOffset();<a name="line.948"></a>
+<span class="sourceLineNo">949</span>    }<a name="line.949"></a>
+<span class="sourceLineNo">950</span><a name="line.950"></a>
+<span class="sourceLineNo">951</span>    @Override<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    public int getTagsLength() {<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      return cell.getTagsLength();<a name="line.953"></a>
+<span class="sourceLineNo">954</span>    }<a name="line.954"></a>
+<span class="sourceLineNo">955</span><a name="line.955"></a>
+<span class="sourceLineNo">956</span>    @Override<a name="line.956"></a>
+<span class="sourceLineNo">957</span>    public byte[] getRowArray() {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      return cell.getRowArray();<a name="line.958"></a>
+<span class="sourceLineNo">959</span>    }<a name="line.959"></a>
+<span class="sourceLineNo">960</span><a name="line.960"></a>
+<span class="sourceLineNo">961</span>    @Override<a name="line.961"></a>
+<span class="sourceLineNo">962</span>    public int getRowOffset() {<a name="line.962"></a>
+<span class="sourceLineNo">963</span>      return cell.getRowOffset();<a name="line.963"></a>
+<span class="sourceLineNo">964</span>    }<a name="line.964"></a>
+<span class="sourceLineNo">965</span><a name="line.965"></a>
+<span class="sourceLineNo">966</span>    @Override<a name="line.966"></a>
+<span class="sourceLineNo">967</span>    public short getRowLength() {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>      return cell.getRowLength();<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    }<a name="line.969"></a>
+<span class="sourceLineNo">970</span><a name="line.970"></a>
+<span class="sourceLineNo">971</span>    @Override<a name="line.971"></a>
+<span class="sourceLineNo">972</span>    public byte[] getFamilyArray() {<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      return cell.getFamilyArray();<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    }<a name="line.974"></a>
+<span class="sourceLineNo">975</span><a name="line.975"></a>
+<span class="sourceLineNo">976</span>    @Override<a name="line.976"></a>
+<span class="sourceLineNo">977</span>    public int getFamilyOffset() {<a name="line.977"></a>
+<span class="sourceLineNo">978</span>      return cell.getFamilyOffset();<a name="line.978"></a>
+<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>    @Override<a name="line.981"></a>
+<span class="sourceLineNo">982</span>    public byte getFamilyLength() {<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      return cell.getFamilyLength();<a name="line.983"></a>
+<span class="sourceLineNo">984</span>    }<a name="line.984"></a>
+<span class="sourceLineNo">985</span><a name="line.985"></a>
+<span class="sourceLineNo">986</span>    @Override<a name="line.986"></a>
+<span class="sourceLineNo">987</span>    public byte[] getQualifierArray() {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>      return cell.getQualifierArray();<a name="line.988"></a>
+<span class="sourceLineNo">989</span>    }<a name="line.989"></a>
+<span class="sourceLineNo">990</span><a name="line.990"></a>
+<span class="sourceLineNo">991</span>    @Override<a name="line.991"></a>
+<span class="sourceLineNo">992</span>    public int getQualifierOffset() {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>      return cell.getQualifierOffset();<a name="line.993"></a>
+<span class="sourceLineNo">994</span>    }<a name="line.994"></a>
+<span class="sourceLineNo">995</span><a name="line.995"></a>
+<span class="sourceLineNo">996</span>    @Override<a name="line.996"></a>
+<span class="sourceLineNo">997</span>    public int getQualifierLength() {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>      return cell.getQualifierLength();<a name="line.998"></a>
+<span class="sourceLineNo">999</span>    }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span><a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    @Override<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    public long getTimestamp() {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      return timestamp;<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span><a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    @Override<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    public byte getTypeByte() {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>      return cell.getTypeByte();<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>    }<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span><a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    @Override<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>    public Optional&lt;Tag&gt; getTag(byte type) {<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      if (cell instanceof RawCell) {<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        return ((RawCell) cell).getTag(type);<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>      }<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>      return PrivateCellUtil.getTag(cell, type);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span><a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    @Override<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    public Iterator&lt;Tag&gt; getTags() {<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      if (cell instanceof RawCell) {<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>        return ((RawCell) cell).getTags();<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>      return PrivateCellUtil.tagsIterator(cell);<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>    }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span><a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    @Override<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    public byte[] cloneTags() {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      if (cell instanceof RawCell) {<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>        return ((RawCell) cell).cloneTags();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>      }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      return PrivateCellUtil.cloneTags(cell);<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    }<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span><a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    private long heapOverhead() {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      return FIXED_OVERHEAD<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        + ClassSize.ARRAY // row<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>        + getFamilyLength() == 0 ? 0 : ClassSize.ARRAY<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        + getQualifierLength() == 0 ? 0 : ClassSize.ARRAY<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>        + getValueLength() == 0 ? 0 : ClassSize.ARRAY<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        + getTagsLength() == 0 ? 0 : ClassSize.ARRAY;<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>    }<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span><a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    @Override<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>    public long heapSize() {<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>      return heapOverhead()<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        + ClassSize.align(getRowLength())<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>        + ClassSize.align(getFamilyLength())<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>        + ClassSize.align(getQualifierLength())<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>        + ClassSize.align(getValueLength())<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>        + ClassSize.align(getTagsLength());<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>    }<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>  }<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>}<a name="line.1054"></a>
 
 
 
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/ServiceCaller.html b/apidocs/src-html/org/apache/hadoop/hbase/client/ServiceCaller.html
index ea3434b..6d6652a 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/ServiceCaller.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/ServiceCaller.html
@@ -25,10 +25,10 @@
 <span class="sourceLineNo">017</span> */<a name="line.17"></a>
 <span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
 <span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import com.google.protobuf.RpcCallback;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import com.google.protobuf.RpcController;<a name="line.21"></a>
-<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.23"></a>
+<span class="sourceLineNo">020</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hbase.thirdparty.com.google.protobuf.RpcController;<a name="line.23"></a>
 <span class="sourceLineNo">024</span><a name="line.24"></a>
 <span class="sourceLineNo">025</span>/**<a name="line.25"></a>
 <span class="sourceLineNo">026</span> * Delegate to a protobuf rpc call.<a name="line.26"></a>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/Table.html b/apidocs/src-html/org/apache/hadoop/hbase/client/Table.html
index 27749b0..7e6e876 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/Table.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/Table.html
@@ -26,720 +26,721 @@
 <span class="sourceLineNo">018</span> */<a name="line.18"></a>
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.client;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>import com.google.protobuf.Descriptors;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import com.google.protobuf.Message;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import com.google.protobuf.Service;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import com.google.protobuf.ServiceException;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.io.Closeable;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.Collections;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.List;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.Map;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.TreeMap;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.concurrent.TimeUnit;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.commons.lang3.NotImplementedException;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.conf.Configuration;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.Cell;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.CompareOperator;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.TableName;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.coprocessor.Batch;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.coprocessor.Batch.Callback;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.filter.Filter;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.io.TimeRange;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>/**<a name="line.45"></a>
-<span class="sourceLineNo">046</span> * Used to communicate with a single HBase table.<a name="line.46"></a>
-<span class="sourceLineNo">047</span> * Obtain an instance from a {@link Connection} and call {@link #close()} afterwards.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * &lt;p&gt;&lt;code&gt;Table&lt;/code&gt; can be used to get, put, delete or scan data from a table.<a name="line.49"></a>
-<span class="sourceLineNo">050</span> * @see ConnectionFactory<a name="line.50"></a>
-<span class="sourceLineNo">051</span> * @see Connection<a name="line.51"></a>
-<span class="sourceLineNo">052</span> * @see Admin<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * @see RegionLocator<a name="line.53"></a>
-<span class="sourceLineNo">054</span> * @since 0.99.0<a name="line.54"></a>
-<span class="sourceLineNo">055</span> */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>@InterfaceAudience.Public<a name="line.56"></a>
-<span class="sourceLineNo">057</span>public interface Table extends Closeable {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  /**<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   * Gets the fully qualified table name instance of this table.<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  TableName getName();<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  /**<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   * Returns the {@link org.apache.hadoop.conf.Configuration} object used by this instance.<a name="line.64"></a>
-<span class="sourceLineNo">065</span>   * &lt;p&gt;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>   * The reference returned is not a copy, so any change made to it will<a name="line.66"></a>
-<span class="sourceLineNo">067</span>   * affect this instance.<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   */<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  Configuration getConfiguration();<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  /**<a name="line.71"></a>
-<span class="sourceLineNo">072</span>   * Gets the {@link org.apache.hadoop.hbase.client.TableDescriptor table descriptor} for this table.<a name="line.72"></a>
-<span class="sourceLineNo">073</span>   * @throws java.io.IOException if a remote or network exception occurs.<a name="line.73"></a>
-<span class="sourceLineNo">074</span>   */<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  TableDescriptor getDescriptor() throws IOException;<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * Gets the {@link RegionLocator} for this table.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  RegionLocator getRegionLocator() throws IOException;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  /**<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   * Test for the existence of columns in the table, as specified by the Get.<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   * &lt;p&gt;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   *<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * This will return true if the Get matches one or more keys, false if not.<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * &lt;p&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   *<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   * This is a server-side call so it prevents any data from being transfered to<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   * the client.<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   *<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   * @param get the Get<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   * @return true if the specified Get matches one or more keys, false if not<a name="line.93"></a>
-<span class="sourceLineNo">094</span>   * @throws IOException e<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  default boolean exists(Get get) throws IOException {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    return exists(Collections.singletonList(get))[0];<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>  /**<a name="line.100"></a>
-<span class="sourceLineNo">101</span>   * Test for the existence of columns in the table, as specified by the Gets.<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * &lt;p&gt;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   *<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * This will return an array of booleans. Each value will be true if the related Get matches<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * one or more keys, false if not.<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * &lt;p&gt;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   *<a name="line.107"></a>
-<span class="sourceLineNo">108</span>   * This is a server-side call so it prevents any data from being transferred to<a name="line.108"></a>
-<span class="sourceLineNo">109</span>   * the client.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>   *<a name="line.110"></a>
-<span class="sourceLineNo">111</span>   * @param gets the Gets<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * @return Array of boolean.  True if the specified Get matches one or more keys, false if not.<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * @throws IOException e<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  default boolean[] exists(List&lt;Get&gt; gets) throws IOException {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    throw new NotImplementedException("Add an implementation!");<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  /**<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   * Method that does a batch call on Deletes, Gets, Puts, Increments, Appends, RowMutations.<a name="line.120"></a>
-<span class="sourceLineNo">121</span>   * The ordering of execution of the actions is not defined. Meaning if you do a Put and a<a name="line.121"></a>
-<span class="sourceLineNo">122</span>   * Get in the same {@link #batch} call, you will not necessarily be<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   * guaranteed that the Get returns what the Put had put.<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   *<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * @param actions list of Get, Put, Delete, Increment, Append, RowMutations.<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * @param results Empty Object[], same size as actions. Provides access to partial<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   *                results, in case an exception is thrown. A null in the result array means that<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   *                the call for that action failed, even after retries. The order of the objects<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   *                in the results array corresponds to the order of actions in the request list.<a name="line.129"></a>
-<span class="sourceLineNo">130</span>   * @throws IOException<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * @since 0.90.0<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  default void batch(final List&lt;? extends Row&gt; actions, final Object[] results) throws IOException,<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    InterruptedException {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    throw new NotImplementedException("Add an implementation!");<a name="line.135"></a>
-<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>  /**<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   * Same as {@link #batch(List, Object[])}, but with a callback.<a name="line.139"></a>
-<span class="sourceLineNo">140</span>   * @since 0.96.0<a name="line.140"></a>
-<span class="sourceLineNo">141</span>   * @deprecated since 3.0.0, will removed in 4.0.0. Please use the batch related methods in<a name="line.141"></a>
-<span class="sourceLineNo">142</span>   *             {@link AsyncTable} directly if you want to use callback. We reuse the callback for<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   *             coprocessor here, and the problem is that for batch operation, the<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   *             {@link AsyncTable} does not tell us the region, so in this method we need an extra<a name="line.144"></a>
-<span class="sourceLineNo">145</span>   *             locating after we get the result, which is not good.<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   */<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  @Deprecated<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  default &lt;R&gt; void batchCallback(final List&lt;? extends Row&gt; actions, final Object[] results,<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      final Batch.Callback&lt;R&gt; callback) throws IOException, InterruptedException {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    throw new NotImplementedException("Add an implementation!");<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  }<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  /**<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   * Extracts certain cells from a given row.<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   * @param get The object that specifies what data to fetch and from which row.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   * @return The data coming from the specified row, if it exists.  If the row<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   *   specified doesn't exist, the {@link Result} instance returned won't<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   *   contain any {@link org.apache.hadoop.hbase.KeyValue}, as indicated by<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   *   {@link Result#isEmpty()}.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   * @throws IOException if a remote or network exception occurs.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>   * @since 0.20.0<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   */<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  default Result get(Get get) throws IOException {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    return get(Collections.singletonList(get))[0];<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  /**<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   * Extracts specified cells from the given rows, as a batch.<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   *<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   * @param gets The objects that specify what data to fetch and from which rows.<a name="line.170"></a>
-<span class="sourceLineNo">171</span>   * @return The data coming from the specified rows, if it exists.  If the row specified doesn't<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   *   exist, the {@link Result} instance returned won't contain any<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   *   {@link org.apache.hadoop.hbase.Cell}s, as indicated by {@link Result#isEmpty()}. If there<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   *   are any failures even after retries, there will be a &lt;code&gt;null&lt;/code&gt; in the results' array<a name="line.174"></a>
-<span class="sourceLineNo">175</span>   *   for  those Gets, AND an exception will be thrown. The ordering of the Result array<a name="line.175"></a>
-<span class="sourceLineNo">176</span>   *   corresponds to  the order of the list of passed in Gets.<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   * @throws IOException if a remote or network exception occurs.<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * @since 0.90.0<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * @apiNote {@link #put(List)} runs pre-flight validations on the input list on client.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   *          Currently {@link #get(List)} doesn't run any validations on the client-side,<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   *          currently there is no need, but this may change in the future. An<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   *          {@link IllegalArgumentException} will be thrown in this case.<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  default Result[] get(List&lt;Get&gt; gets) throws IOException {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    throw new NotImplementedException("Add an implementation!");<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  }<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  /**<a name="line.188"></a>
-<span class="sourceLineNo">189</span>   * Returns a scanner on the current table as specified by the {@link Scan}<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * object.<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   * Note that the passed {@link Scan}'s start row and caching properties<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * maybe changed.<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   *<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   * @param scan A configured {@link Scan} object.<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   * @return A scanner.<a name="line.195"></a>
-<span class="sourceLineNo">196</span>   * @throws IOException if a remote or network exception occurs.<a name="line.196"></a>
-<span class="sourceLineNo">197</span>   * @since 0.20.0<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   */<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  default ResultScanner getScanner(Scan scan) throws IOException {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    throw new NotImplementedException("Add an implementation!");<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  /**<a name="line.203"></a>
-<span class="sourceLineNo">204</span>   * Gets a scanner on the current table for the given family.<a name="line.204"></a>
-<span class="sourceLineNo">205</span>   *<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   * @param family The column family to scan.<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * @return A scanner.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * @throws IOException if a remote or network exception occurs.<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * @since 0.20.0<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   */<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  default ResultScanner getScanner(byte[] family) throws IOException {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    throw new NotImplementedException("Add an implementation!");<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  /**<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   * Gets a scanner on the current table for the given family and qualifier.<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   *<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   * @param family The column family to scan.<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   * @param qualifier The column qualifier to scan.<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   * @return A scanner.<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   * @throws IOException if a remote or network exception occurs.<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   * @since 0.20.0<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   */<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  default ResultScanner getScanner(byte[] family, byte[] qualifier) throws IOException {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    throw new NotImplementedException("Add an implementation!");<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  /**<a name="line.228"></a>
-<span class="sourceLineNo">229</span>   * Puts some data in the table.<a name="line.229"></a>
-<span class="sourceLineNo">230</span>   *<a name="line.230"></a>
-<span class="sourceLineNo">231</span>   * @param put The data to put.<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * @throws IOException if a remote or network exception occurs.<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * @since 0.20.0<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  default void put(Put put) throws IOException {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    put(Collections.singletonList(put));<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  }<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  /**<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   * Batch puts the specified data into the table.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   * &lt;p&gt;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   * This can be used for group commit, or for submitting user defined batches. Before sending<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * a batch of mutations to the server, the client runs a few validations on the input list. If an<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   * error is found, for example, a mutation was supplied but was missing it's column an<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * {@link IllegalArgumentException} will be thrown and no mutations will be applied. If there<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   * are any failures even after retries, a {@link RetriesExhaustedWithDetailsException} will be<a name="line.246"></a>
-<span class="sourceLineNo">247</span>   * thrown. RetriesExhaustedWithDetailsException contains lists of failed mutations and<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   * corresponding remote exceptions. The ordering of mutations and exceptions in the<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * encapsulating exception corresponds to the order of the input list of Put requests.<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   *<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   * @param puts The list of mutations to apply.<a name="line.251"></a>
-<span class="sourceLineNo">252</span>   * @throws IOException if a remote or network exception occurs.<a name="line.252"></a>
-<span class="sourceLineNo">253</span>   * @since 0.20.0<a name="line.253"></a>
-<span class="sourceLineNo">254</span>   */<a name="line.254"></a>
-<span class="sourceLineNo">255</span>  default void put(List&lt;Put&gt; puts) throws IOException {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    throw new NotImplementedException("Add an implementation!");<a name="line.256"></a>
-<span class="sourceLineNo">257</span>  }<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span>  /**<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   * Deletes the specified cells/row.<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   *<a name="line.261"></a>
-<span class="sourceLineNo">262</span>   * @param delete The object that specifies what to delete.<a name="line.262"></a>
-<span class="sourceLineNo">263</span>   * @throws IOException if a remote or network exception occurs.<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * @since 0.20.0<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   */<a name="line.265"></a>
-<span class="sourceLineNo">266</span>  default void delete(Delete delete) throws IOException {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    throw new NotImplementedException("Add an implementation!");<a name="line.267"></a>
-<span class="sourceLineNo">268</span>  }<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>  /**<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * Batch Deletes the specified cells/rows from the table.<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * &lt;p&gt;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * If a specified row does not exist, {@link Delete} will report as though sucessful<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * delete; no exception will be thrown. If there are any failures even after retries,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * a {@link RetriesExhaustedWithDetailsException} will be thrown.<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * RetriesExhaustedWithDetailsException contains lists of failed {@link Delete}s and<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   * corresponding remote exceptions.<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   *<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   * @param deletes List of things to delete. The input list gets modified by this<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   * method. All successfully applied {@link Delete}s in the list are removed (in particular it<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   * gets re-ordered, so the order in which the elements are inserted in the list gives no<a name="line.281"></a>
-<span class="sourceLineNo">282</span>   * guarantee as to the order in which the {@link Delete}s are executed).<a name="line.282"></a>
-<span class="sourceLineNo">283</span>   * @throws IOException if a remote or network exception occurs. In that case<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * the {@code deletes} argument will contain the {@link Delete} instances<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   * that have not be successfully applied.<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * @since 0.20.1<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * @apiNote In 3.0.0 version, the input list {@code deletes} will no longer be modified. Also,<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   *          {@link #put(List)} runs pre-flight validations on the input list on client. Currently<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   *          {@link #delete(List)} doesn't run validations on the client, there is no need<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   *          currently, but this may change in the future. An * {@link IllegalArgumentException}<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   *          will be thrown in this case.<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   */<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  default void delete(List&lt;Delete&gt; deletes) throws IOException {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    throw new NotImplementedException("Add an implementation!");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  /**<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * Atomically checks if a row/family/qualifier value matches the expected value. If it does, it<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * adds the Put/Delete/RowMutations.<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   * &lt;p&gt;<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   * Use the returned {@link CheckAndMutateBuilder} to construct your request and then execute it.<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   * This is a fluent style API, the code is like:<a name="line.302"></a>
-<span class="sourceLineNo">303</span>   *<a name="line.303"></a>
-<span class="sourceLineNo">304</span>   * &lt;pre&gt;<a name="line.304"></a>
-<span class="sourceLineNo">305</span>   * &lt;code&gt;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * table.checkAndMutate(row, family).qualifier(qualifier).ifNotExists().thenPut(put);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   * &lt;/code&gt;<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   * &lt;/pre&gt;<a name="line.308"></a>
-<span class="sourceLineNo">309</span>   */<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  default CheckAndMutateBuilder checkAndMutate(byte[] row, byte[] family) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    throw new NotImplementedException("Add an implementation!");<a name="line.311"></a>
-<span class="sourceLineNo">312</span>  }<a name="line.312"></a>
-<span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>  /**<a name="line.314"></a>
-<span class="sourceLineNo">315</span>   * A helper class for sending checkAndMutate request.<a name="line.315"></a>
-<span class="sourceLineNo">316</span>   */<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  interface CheckAndMutateBuilder {<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>    /**<a name="line.319"></a>
-<span class="sourceLineNo">320</span>     * @param qualifier column qualifier to check.<a name="line.320"></a>
-<span class="sourceLineNo">321</span>     */<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    CheckAndMutateBuilder qualifier(byte[] qualifier);<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>    /**<a name="line.324"></a>
-<span class="sourceLineNo">325</span>     * @param timeRange timeRange to check<a name="line.325"></a>
-<span class="sourceLineNo">326</span>     */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    CheckAndMutateBuilder timeRange(TimeRange timeRange);<a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>    /**<a name="line.329"></a>
-<span class="sourceLineNo">330</span>     * Check for lack of column.<a name="line.330"></a>
-<span class="sourceLineNo">331</span>     */<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    CheckAndMutateBuilder ifNotExists();<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>    /**<a name="line.334"></a>
-<span class="sourceLineNo">335</span>     * Check for equality.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>     * @param value the expected value<a name="line.336"></a>
-<span class="sourceLineNo">337</span>     */<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    default CheckAndMutateBuilder ifEquals(byte[] value) {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      return ifMatches(CompareOperator.EQUAL, value);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>    /**<a name="line.342"></a>
-<span class="sourceLineNo">343</span>     * @param compareOp comparison operator to use<a name="line.343"></a>
-<span class="sourceLineNo">344</span>     * @param value the expected value<a name="line.344"></a>
-<span class="sourceLineNo">345</span>     */<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    CheckAndMutateBuilder ifMatches(CompareOperator compareOp, byte[] value);<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>    /**<a name="line.348"></a>
-<span class="sourceLineNo">349</span>     * @param put data to put if check succeeds<a name="line.349"></a>
-<span class="sourceLineNo">350</span>     * @return {@code true} if the new put was executed, {@code false} otherwise.<a name="line.350"></a>
-<span class="sourceLineNo">351</span>     */<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    boolean thenPut(Put put) throws IOException;<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>    /**<a name="line.354"></a>
-<span class="sourceLineNo">355</span>     * @param delete data to delete if check succeeds<a name="line.355"></a>
-<span class="sourceLineNo">356</span>     * @return {@code true} if the new delete was executed, {@code false} otherwise.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>     */<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    boolean thenDelete(Delete delete) throws IOException;<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>    /**<a name="line.360"></a>
-<span class="sourceLineNo">361</span>     * @param mutation mutations to perform if check succeeds<a name="line.361"></a>
-<span class="sourceLineNo">362</span>     * @return true if the new mutation was executed, false otherwise.<a name="line.362"></a>
-<span class="sourceLineNo">363</span>     */<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    boolean thenMutate(RowMutations mutation) throws IOException;<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  }<a name="line.365"></a>
-<span class="sourceLineNo">366</span><a name="line.366"></a>
-<span class="sourceLineNo">367</span>  /**<a name="line.367"></a>
-<span class="sourceLineNo">368</span>   * Atomically checks if a row matches the specified filter. If it does, it adds the<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   * Put/Delete/RowMutations.<a name="line.369"></a>
-<span class="sourceLineNo">370</span>   * &lt;p&gt;<a name="line.370"></a>
-<span class="sourceLineNo">371</span>   * Use the returned {@link CheckAndMutateWithFilterBuilder} to construct your request and then<a name="line.371"></a>
-<span class="sourceLineNo">372</span>   * execute it. This is a fluent style API, the code is like:<a name="line.372"></a>
-<span class="sourceLineNo">373</span>   *<a name="line.373"></a>
-<span class="sourceLineNo">374</span>   * &lt;pre&gt;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>   * &lt;code&gt;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>   * table.checkAndMutate(row, filter).thenPut(put);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   * &lt;/code&gt;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * &lt;/pre&gt;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   */<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  default CheckAndMutateWithFilterBuilder checkAndMutate(byte[] row, Filter filter) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    throw new NotImplementedException("Add an implementation!");<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>  /**<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   * A helper class for sending checkAndMutate request with a filter.<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   */<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  interface CheckAndMutateWithFilterBuilder {<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>    /**<a name="line.389"></a>
-<span class="sourceLineNo">390</span>     * @param timeRange timeRange to check<a name="line.390"></a>
-<span class="sourceLineNo">391</span>     */<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    CheckAndMutateWithFilterBuilder timeRange(TimeRange timeRange);<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>    /**<a name="line.394"></a>
-<span class="sourceLineNo">395</span>     * @param put data to put if check succeeds<a name="line.395"></a>
-<span class="sourceLineNo">396</span>     * @return {@code true} if the new put was executed, {@code false} otherwise.<a name="line.396"></a>
-<span class="sourceLineNo">397</span>     */<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    boolean thenPut(Put put) throws IOException;<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    /**<a name="line.400"></a>
-<span class="sourceLineNo">401</span>     * @param delete data to delete if check succeeds<a name="line.401"></a>
-<span class="sourceLineNo">402</span>     * @return {@code true} if the new delete was executed, {@code false} otherwise.<a name="line.402"></a>
-<span class="sourceLineNo">403</span>     */<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    boolean thenDelete(Delete delete) throws IOException;<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>    /**<a name="line.406"></a>
-<span class="sourceLineNo">407</span>     * @param mutation mutations to perform if check succeeds<a name="line.407"></a>
-<span class="sourceLineNo">408</span>     * @return true if the new mutation was executed, false otherwise.<a name="line.408"></a>
-<span class="sourceLineNo">409</span>     */<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    boolean thenMutate(RowMutations mutation) throws IOException;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  /**<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   * Performs multiple mutations atomically on a single row. Currently<a name="line.414"></a>
-<span class="sourceLineNo">415</span>   * {@link Put} and {@link Delete} are supported.<a name="line.415"></a>
-<span class="sourceLineNo">416</span>   *<a name="line.416"></a>
-<span class="sourceLineNo">417</span>   * @param rm object that specifies the set of mutations to perform atomically<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @throws IOException<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   */<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  default void mutateRow(final RowMutations rm) throws IOException {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    throw new NotImplementedException("Add an implementation!");<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  }<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>  /**<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   * Appends values to one or more columns within a single row.<a name="line.425"></a>
-<span class="sourceLineNo">426</span>   * &lt;p&gt;<a name="line.426"></a>
-<span class="sourceLineNo">427</span>   * This operation guaranteed atomicity to readers. Appends are done<a name="line.427"></a>
-<span class="sourceLineNo">428</span>   * under a single row lock, so write operations to a row are synchronized, and<a name="line.428"></a>
-<span class="sourceLineNo">429</span>   * readers are guaranteed to see this operation fully completed.<a name="line.429"></a>
-<span class="sourceLineNo">430</span>   *<a name="line.430"></a>
-<span class="sourceLineNo">431</span>   * @param append object that specifies the columns and values to be appended<a name="line.431"></a>
-<span class="sourceLineNo">432</span>   * @throws IOException e<a name="line.432"></a>
-<span class="sourceLineNo">433</span>   * @return values of columns after the append operation (maybe null)<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   */<a name="line.434"></a>
-<span class="sourceLineNo">435</span>  default Result append(final Append append) throws IOException {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>    throw new NotImplementedException("Add an implementation!");<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  }<a name="line.437"></a>
-<span class="sourceLineNo">438</span><a name="line.438"></a>
-<span class="sourceLineNo">439</span>  /**<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   * Increments one or more columns within a single row.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>   * &lt;p&gt;<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * This operation ensures atomicity to readers. Increments are done<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   * under a single row lock, so write operations to a row are synchronized, and<a name="line.443"></a>
-<span class="sourceLineNo">444</span>   * readers are guaranteed to see this operation fully completed.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   *<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   * @param increment object that specifies the columns and amounts to be used<a name="line.446"></a>
-<span class="sourceLineNo">447</span>   *                  for the increment operations<a name="line.447"></a>
-<span class="sourceLineNo">448</span>   * @throws IOException e<a name="line.448"></a>
-<span class="sourceLineNo">449</span>   * @return values of columns after the increment<a name="line.449"></a>
-<span class="sourceLineNo">450</span>   */<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  default Result increment(final Increment increment) throws IOException {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    throw new NotImplementedException("Add an implementation!");<a name="line.452"></a>
-<span class="sourceLineNo">453</span>  }<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span>  /**<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   * See {@link #incrementColumnValue(byte[], byte[], byte[], long, Durability)}<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   * &lt;p&gt;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   * The {@link Durability} is defaulted to {@link Durability#SYNC_WAL}.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>   * @param row The row that contains the cell to increment.<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * @param family The column family of the cell to increment.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   * @param qualifier The column qualifier of the cell to increment.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   * @param amount The amount to increment the cell with (or decrement, if the<a name="line.462"></a>
-<span class="sourceLineNo">463</span>   * amount is negative).<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * @return The new value, post increment.<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * @throws IOException if a remote or network exception occurs.<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   */<a name="line.466"></a>
-<span class="sourceLineNo">467</span>  default long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount)<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      throws IOException {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    Increment increment = new Increment(row).addColumn(family, qualifier, amount);<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    Cell cell = increment(increment).getColumnLatestCell(family, qualifier);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    return Bytes.toLong(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>  /**<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   * Atomically increments a column value. If the column value already exists<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * and is not a big-endian long, this could throw an exception. If the column<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * value does not yet exist it is initialized to &lt;code&gt;amount&lt;/code&gt; and<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * written to the specified column.<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   *<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   * &lt;p&gt;Setting durability to {@link Durability#SKIP_WAL} means that in a fail<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * scenario you will lose any increments that have not been flushed.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @param row The row that contains the cell to increment.<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   * @param family The column family of the cell to increment.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>   * @param qualifier The column qualifier of the cell to increment.<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * @param amount The amount to increment the cell with (or decrement, if the<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * amount is negative).<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * @param durability The persistence guarantee for this increment.<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   * @return The new value, post increment.<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * @throws IOException if a remote or network exception occurs.<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   */<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  default long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier,<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    long amount, Durability durability) throws IOException {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    Increment increment = new Increment(row)<a name="line.493"></a>
-<span class="sourceLineNo">494</span>        .addColumn(family, qualifier, amount)<a name="line.494"></a>
-<span class="sourceLineNo">495</span>        .setDurability(durability);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    Cell cell = increment(increment).getColumnLatestCell(family, qualifier);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    return Bytes.toLong(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());<a name="line.497"></a>
-<span class="sourceLineNo">498</span>  }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>  /**<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   * Releases any resources held or pending changes in internal buffers.<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   *<a name="line.502"></a>
-<span class="sourceLineNo">503</span>   * @throws IOException if a remote or network exception occurs.<a name="line.503"></a>
-<span class="sourceLineNo">504</span>   */<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  @Override<a name="line.505"></a>
-<span class="sourceLineNo">506</span>  default void close() throws IOException {<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    throw new NotImplementedException("Add an implementation!");<a name="line.507"></a>
-<span class="sourceLineNo">508</span>  }<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>  /**<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * Creates and returns a {@link com.google.protobuf.RpcChannel} instance connected to the table<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * region containing the specified row. The row given does not actually have to exist. Whichever<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   * region would contain the row based on start and end keys will be used. Note that the<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   * {@code row} parameter is also not passed to the coprocessor handler registered for this<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * protocol, unless the {@code row} is separately passed as an argument in the service request.<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   * The parameter here is only used to locate the region used to handle the call.<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * &lt;p&gt;<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * The obtained {@link com.google.protobuf.RpcChannel} instance can be used to access a published<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * coprocessor {@link com.google.protobuf.Service} using standard protobuf service invocations:<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * &lt;/p&gt;<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * &lt;div style="background-color: #cccccc; padding: 2px"&gt; &lt;blockquote&gt;<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   *<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   * &lt;pre&gt;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>   * CoprocessorRpcChannel channel = myTable.coprocessorService(rowkey);<a name="line.524"></a>
-<span class="sourceLineNo">525</span>   * MyService.BlockingInterface service = MyService.newBlockingStub(channel);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   * MyCallRequest request = MyCallRequest.newBuilder()<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   *     ...<a name="line.527"></a>
-<span class="sourceLineNo">528</span>   *     .build();<a name="line.528"></a>
-<span class="sourceLineNo">529</span>   * MyCallResponse response = service.myCall(null, request);<a name="line.529"></a>
-<span class="sourceLineNo">530</span>   * &lt;/pre&gt;<a name="line.530"></a>
-<span class="sourceLineNo">531</span>   *<a name="line.531"></a>
-<span class="sourceLineNo">532</span>   * &lt;/blockquote&gt;&lt;/div&gt;<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * @param row The row key used to identify the remote region location<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @return A CoprocessorRpcChannel instance<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * @deprecated since 3.0.0, will removed in 4.0.0. This is too low level, please stop using it any<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   *             more. Use the coprocessorService methods in {@link AsyncTable} instead.<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   * @see Connection#toAsyncConnection()<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   */<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  @Deprecated<a name="line.539"></a>
-<span class="sourceLineNo">540</span>  default CoprocessorRpcChannel coprocessorService(byte[] row) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    throw new NotImplementedException("Add an implementation!");<a name="line.541"></a>
-<span class="sourceLineNo">542</span>  }<a name="line.542"></a>
-<span class="sourceLineNo">543</span><a name="line.543"></a>
-<span class="sourceLineNo">544</span>  /**<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.545"></a>
-<span class="sourceLineNo">546</span>   * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), and<a name="line.546"></a>
-<span class="sourceLineNo">547</span>   * invokes the passed {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.547"></a>
-<span class="sourceLineNo">548</span>   * with each {@link com.google.protobuf.Service} instance.<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * @param service the protocol buffer {@code Service} implementation to call<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   * @param startKey start region selection with region containing this row. If {@code null}, the<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   *          selection will start with the first table region.<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * @param endKey select regions up to and including the region containing this row. If<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   *          {@code null}, selection will continue through the last table region.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   * @param callable this instance's<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   *          {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method will be<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   *          invoked once per table region, using the {@link com.google.protobuf.Service} instance<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   *          connected to that region.<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * @param &lt;T&gt; the {@link com.google.protobuf.Service} subclass to connect to<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @param &lt;R&gt; Return type for the {@code callable} parameter's<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   *          {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.560"></a>
-<span class="sourceLineNo">561</span>   * @return a map of result values keyed by region name<a name="line.561"></a>
-<span class="sourceLineNo">562</span>   * @deprecated since 3.0.0, will removed in 4.0.0. The batch call here references the blocking<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   *             interface for of a protobuf stub, so it is not possible to do it in an asynchronous<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   *             way, even if now we are building the {@link Table} implementation based on the<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   *             {@link AsyncTable}, which is not good. Use the coprocessorService methods in<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   *             {@link AsyncTable} directly instead.<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * @see Connection#toAsyncConnection()<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   */<a name="line.568"></a>
-<span class="sourceLineNo">569</span>  @Deprecated<a name="line.569"></a>
-<span class="sourceLineNo">570</span>  default &lt;T extends Service, R&gt; Map&lt;byte[], R&gt; coprocessorService(final Class&lt;T&gt; service,<a name="line.570"></a>
-<span class="sourceLineNo">571</span>      byte[] startKey, byte[] endKey, final Batch.Call&lt;T, R&gt; callable)<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      throws ServiceException, Throwable {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    Map&lt;byte[], R&gt; results =<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      Collections.synchronizedMap(new TreeMap&lt;byte[], R&gt;(Bytes.BYTES_COMPARATOR));<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    coprocessorService(service, startKey, endKey, callable, new Batch.Callback&lt;R&gt;() {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      @Override<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      public void update(byte[] region, byte[] row, R value) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>        if (region != null) {<a name="line.578"></a>
-<span class="sourceLineNo">579</span>          results.put(region, value);<a name="line.579"></a>
-<span class="sourceLineNo">580</span>        }<a name="line.580"></a>
-<span class="sourceLineNo">581</span>      }<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    });<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    return results;<a name="line.583"></a>
-<span class="sourceLineNo">584</span>  }<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>  /**<a name="line.586"></a>
-<span class="sourceLineNo">587</span>   * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.587"></a>
-<span class="sourceLineNo">588</span>   * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), and<a name="line.588"></a>
-<span class="sourceLineNo">589</span>   * invokes the passed {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.589"></a>
-<span class="sourceLineNo">590</span>   * with each {@link Service} instance.<a name="line.590"></a>
-<span class="sourceLineNo">591</span>   * &lt;p&gt;<a name="line.591"></a>
-<span class="sourceLineNo">592</span>   * The given<a name="line.592"></a>
-<span class="sourceLineNo">593</span>   * {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Callback#update(byte[],byte[],Object)}<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * method will be called with the return value from each region's<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} invocation.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * &lt;/p&gt;<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * @param service the protocol buffer {@code Service} implementation to call<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * @param startKey start region selection with region containing this row. If {@code null}, the<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   *          selection will start with the first table region.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @param endKey select regions up to and including the region containing this row. If<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   *          {@code null}, selection will continue through the last table region.<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * @param callable this instance's<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   *          {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method will be<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   *          invoked once per table region, using the {@link Service} instance connected to that<a name="line.604"></a>
-<span class="sourceLineNo">605</span>   *          region.<a name="line.605"></a>
-<span class="sourceLineNo">606</span>   * @param &lt;T&gt; the {@link Service} subclass to connect to<a name="line.606"></a>
-<span class="sourceLineNo">607</span>   * @param &lt;R&gt; Return type for the {@code callable} parameter's<a name="line.607"></a>
-<span class="sourceLineNo">608</span>   *          {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Call#call} method<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   * @deprecated since 3.0.0, will removed in 4.0.0. The batch call here references the blocking<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   *             interface for of a protobuf stub, so it is not possible to do it in an asynchronous<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   *             way, even if now we are building the {@link Table} implementation based on the<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   *             {@link AsyncTable}, which is not good. Use the coprocessorService methods in<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   *             {@link AsyncTable} directly instead.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   * @see Connection#toAsyncConnection()<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   */<a name="line.615"></a>
-<span class="sourceLineNo">616</span>  @Deprecated<a name="line.616"></a>
-<span class="sourceLineNo">617</span>  default &lt;T extends Service, R&gt; void coprocessorService(final Class&lt;T&gt; service, byte[] startKey,<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      byte[] endKey, final Batch.Call&lt;T, R&gt; callable, final Batch.Callback&lt;R&gt; callback)<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      throws ServiceException, Throwable {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    throw new NotImplementedException("Add an implementation!");<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>  /**<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), all<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * the invocations to the same region server will be batched into one call. The coprocessor<a name="line.626"></a>
-<span class="sourceLineNo">627</span>   * service is invoked according to the service instance, method name and parameters.<a name="line.627"></a>
-<span class="sourceLineNo">628</span>   * @param methodDescriptor the descriptor for the protobuf service method to call.<a name="line.628"></a>
-<span class="sourceLineNo">629</span>   * @param request the method call parameters<a name="line.629"></a>
-<span class="sourceLineNo">630</span>   * @param startKey start region selection with region containing this row. If {@code null}, the<a name="line.630"></a>
-<span class="sourceLineNo">631</span>   *          selection will start with the first table region.<a name="line.631"></a>
-<span class="sourceLineNo">632</span>   * @param endKey select regions up to and including the region containing this row. If<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   *          {@code null}, selection will continue through the last table region.<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * @param responsePrototype the proto type of the response of the method in Service.<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   * @param &lt;R&gt; the response type for the coprocessor Service method<a name="line.635"></a>
-<span class="sourceLineNo">636</span>   * @return a map of result values keyed by region name<a name="line.636"></a>
-<span class="sourceLineNo">637</span>   * @deprecated since 3.0.0, will removed in 4.0.0. The batch call here references the blocking<a name="line.637"></a>
-<span class="sourceLineNo">638</span>   *             interface for of a protobuf stub, so it is not possible to do it in an asynchronous<a name="line.638"></a>
-<span class="sourceLineNo">639</span>   *             way, even if now we are building the {@link Table} implementation based on the<a name="line.639"></a>
-<span class="sourceLineNo">640</span>   *             {@link AsyncTable}, which is not good. Use the coprocessorService methods in<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   *             {@link AsyncTable} directly instead.<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * @see Connection#toAsyncConnection()<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   */<a name="line.643"></a>
-<span class="sourceLineNo">644</span>  @Deprecated<a name="line.644"></a>
-<span class="sourceLineNo">645</span>  default &lt;R extends Message&gt; Map&lt;byte[], R&gt; batchCoprocessorService(<a name="line.645"></a>
-<span class="sourceLineNo">646</span>      Descriptors.MethodDescriptor methodDescriptor, Message request, byte[] startKey,<a name="line.646"></a>
-<span class="sourceLineNo">647</span>      byte[] endKey, R responsePrototype) throws ServiceException, Throwable {<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    final Map&lt;byte[], R&gt; results =<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      Collections.synchronizedMap(new TreeMap&lt;byte[], R&gt;(Bytes.BYTES_COMPARATOR));<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    batchCoprocessorService(methodDescriptor, request, startKey, endKey, responsePrototype,<a name="line.650"></a>
-<span class="sourceLineNo">651</span>      new Callback&lt;R&gt;() {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        @Override<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        public void update(byte[] region, byte[] row, R result) {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          if (region != null) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>            results.put(region, result);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>          }<a name="line.656"></a>
-<span class="sourceLineNo">657</span>        }<a name="line.657"></a>
-<span class="sourceLineNo">658</span>      });<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    return results;<a name="line.659"></a>
-<span class="sourceLineNo">660</span>  }<a name="line.660"></a>
-<span class="sourceLineNo">661</span><a name="line.661"></a>
-<span class="sourceLineNo">662</span>  /**<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   * Creates an instance of the given {@link com.google.protobuf.Service} subclass for each table<a name="line.663"></a>
-<span class="sourceLineNo">664</span>   * region spanning the range from the {@code startKey} row to {@code endKey} row (inclusive), all<a name="line.664"></a>
-<span class="sourceLineNo">665</span>   * the invocations to the same region server will be batched into one call. The coprocessor<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * service is invoked according to the service instance, method name and parameters.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   * &lt;p&gt;<a name="line.667"></a>
-<span class="sourceLineNo">668</span>   * The given<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * {@link org.apache.hadoop.hbase.client.coprocessor.Batch.Callback#update(byte[],byte[],Object)}<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   * method will be called with the return value from each region's invocation.<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * &lt;/p&gt;<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * @param methodDescriptor the descriptor for the protobuf service method to call.<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @param request the method call parameters<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * @param startKey start region selection with region containing this row. If {@code null}, the<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   *          selection will start with the first table region.<a name="line.675"></a>
-<span class="sourceLineNo">676</span>   * @param endKey select regions up to and including the region containing this row. If<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   *          {@code null}, selection will continue through the last table region.<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * @param responsePrototype the proto type of the response of the method in Service.<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   * @param callback callback to invoke with the response for each region<a name="line.679"></a>
-<span class="sourceLineNo">680</span>   * @param &lt;R&gt; the response type for the coprocessor Service method<a name="line.680"></a>
-<span class="sourceLineNo">681</span>   * @deprecated since 3.0.0, will removed in 4.0.0. The batch call here references the blocking<a name="line.681"></a>
-<span class="sourceLineNo">682</span>   *             interface for of a protobuf stub, so it is not possible to do it in an asynchronous<a name="line.682"></a>
-<span class="sourceLineNo">683</span>   *             way, even if now we are building the {@link Table} implementation based on the<a name="line.683"></a>
-<span class="sourceLineNo">684</span>   *             {@link AsyncTable}, which is not good. Use the coprocessorService methods in<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   *             {@link AsyncTable} directly instead.<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   * @see Connection#toAsyncConnection()<a name="line.686"></a>
-<span class="sourceLineNo">687</span>   */<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  @Deprecated<a name="line.688"></a>
-<span class="sourceLineNo">689</span>  default &lt;R extends Message&gt; void batchCoprocessorService(<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      Descriptors.MethodDescriptor methodDescriptor, Message request, byte[] startKey,<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      byte[] endKey, R responsePrototype, Batch.Callback&lt;R&gt; callback)<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      throws ServiceException, Throwable {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    throw new NotImplementedException("Add an implementation!");<a name="line.693"></a>
-<span class="sourceLineNo">694</span>  }<a name="line.694"></a>
-<span class="sourceLineNo">695</span><a name="line.695"></a>
-<span class="sourceLineNo">696</span>  /**<a name="line.696"></a>
-<span class="sourceLineNo">697</span>   * Get timeout of each rpc request in this Table instance. It will be overridden by a more<a name="line.697"></a>
-<span class="sourceLineNo">698</span>   * specific rpc timeout config such as readRpcTimeout or writeRpcTimeout.<a name="line.698"></a>
-<span class="sourceLineNo">699</span>   * @see #getReadRpcTimeout(TimeUnit)<a name="line.699"></a>
-<span class="sourceLineNo">700</span>   * @see #getWriteRpcTimeout(TimeUnit)<a name="line.700"></a>
-<span class="sourceLineNo">701</span>   * @param unit the unit of time the timeout to be represented in<a name="line.701"></a>
-<span class="sourceLineNo">702</span>   * @return rpc timeout in the specified time unit<a name="line.702"></a>
-<span class="sourceLineNo">703</span>   */<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  default long getRpcTimeout(TimeUnit unit) {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>    throw new NotImplementedException("Add an implementation!");<a name="line.705"></a>
-<span class="sourceLineNo">706</span>  }<a name="line.706"></a>
-<span class="sourceLineNo">707</span><a name="line.707"></a>
-<span class="sourceLineNo">708</span>  /**<a name="line.708"></a>
-<span class="sourceLineNo">709</span>   * Get timeout of each rpc read request in this Table instance.<a name="line.709"></a>
-<span class="sourceLineNo">710</span>   * @param unit the unit of time the timeout to be represented in<a name="line.710"></a>
-<span class="sourceLineNo">711</span>   * @return read rpc timeout in the specified time unit<a name="line.711"></a>
-<span class="sourceLineNo">712</span>   */<a name="line.712"></a>
-<span class="sourceLineNo">713</span>  default long getReadRpcTimeout(TimeUnit unit) {<a name="line.713"></a>
-<span class="sourceLineNo">714</span>    throw new NotImplementedException("Add an implementation!");<a name="line.714"></a>
-<span class="sourceLineNo">715</span>  }<a name="line.715"></a>
-<span class="sourceLineNo">716</span><a name="line.716"></a>
-<span class="sourceLineNo">717</span>  /**<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * Get timeout of each rpc write request in this Table instance.<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @param unit the unit of time the timeout to be represented in<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * @return write rpc timeout in the specified time unit<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   */<a name="line.721"></a>
-<span class="sourceLineNo">722</span>  default long getWriteRpcTimeout(TimeUnit unit) {<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    throw new NotImplementedException("Add an implementation!");<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  }<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  /**<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   * Get timeout of each operation in Table instance.<a name="line.727"></a>
-<span class="sourceLineNo">728</span>   * @param unit the unit of time the timeout to be represented in<a name="line.728"></a>
-<span class="sourceLineNo">729</span>   * @return operation rpc timeout in the specified time unit<a name="line.729"></a>
-<span class="sourceLineNo">730</span>   */<a name="line.730"></a>
-<span class="sourceLineNo">731</span>  default long getOperationTimeout(TimeUnit unit) {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>    throw new NotImplementedException("Add an implementation!");<a name="line.732"></a>
-<span class="sourceLineNo">733</span>  }<a name="line.733"></a>
-<span class="sourceLineNo">734</span>}<a name="line.734"></a>
+<span class="sourceLineNo">021</span>import java.io.Closeable;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.Collections;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Map;<a name="line.25"></a>
... 941121 lines suppressed ...