Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D3071200C6C for ; Fri, 5 May 2017 16:58:43 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id D1AB2160BC7; Fri, 5 May 2017 14:58:43 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 5BDEA160BCD for ; Fri, 5 May 2017 16:58:41 +0200 (CEST) Received: (qmail 27997 invoked by uid 500); 5 May 2017 14:58:39 -0000 Mailing-List: contact commits-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list commits@hbase.apache.org Received: (qmail 26783 invoked by uid 99); 5 May 2017 14:58:39 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 May 2017 14:58:39 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id EBC62E178C; Fri, 5 May 2017 14:58:38 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: git-site-role@apache.org To: commits@hbase.apache.org Date: Fri, 05 May 2017 14:59:03 -0000 Message-Id: <3ed39db4cbf4473998140f8af3f6d501@git.apache.org> In-Reply-To: <0e98c233fcb34a92ba78cadc5679d595@git.apache.org> References: <0e98c233fcb34a92ba78cadc5679d595@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [26/43] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd. archived-at: Fri, 05 May 2017 14:58:44 -0000 http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html ---------------------------------------------------------------------- diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html index 8750fa2..4fd4af0 100644 --- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html +++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html @@ -48,2133 +48,2409 @@ 040 041import io.netty.util.Timeout; 042import io.netty.util.TimerTask; -043import org.apache.commons.logging.Log; -044import org.apache.commons.logging.LogFactory; -045import org.apache.hadoop.hbase.HColumnDescriptor; -046import org.apache.hadoop.hbase.HRegionInfo; -047import org.apache.hadoop.hbase.HRegionLocation; -048import org.apache.hadoop.hbase.MetaTableAccessor; -049import org.apache.hadoop.hbase.MetaTableAccessor.QueryType; -050import org.apache.hadoop.hbase.NotServingRegionException; -051import org.apache.hadoop.hbase.ProcedureInfo; -052import org.apache.hadoop.hbase.RegionLocations; -053import org.apache.hadoop.hbase.ServerName; -054import org.apache.hadoop.hbase.NamespaceDescriptor; -055import org.apache.hadoop.hbase.HConstants; -056import org.apache.hadoop.hbase.TableExistsException; -057import org.apache.hadoop.hbase.TableName; -058import org.apache.hadoop.hbase.AsyncMetaTableAccessor; -059import org.apache.hadoop.hbase.TableNotDisabledException; -060import org.apache.hadoop.hbase.TableNotFoundException; -061import org.apache.hadoop.hbase.UnknownRegionException; -062import org.apache.hadoop.hbase.classification.InterfaceAudience; -063import org.apache.hadoop.hbase.classification.InterfaceStability; -064import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder; -065import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder; -066import org.apache.hadoop.hbase.client.Scan.ReadType; -067import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper; -068import org.apache.hadoop.hbase.client.replication.TableCFs; -069import org.apache.hadoop.hbase.exceptions.DeserializationException; -070import org.apache.hadoop.hbase.ipc.HBaseRpcController; -071import org.apache.hadoop.hbase.quotas.QuotaFilter; -072import org.apache.hadoop.hbase.quotas.QuotaSettings; -073import org.apache.hadoop.hbase.quotas.QuotaTableUtil; -074import org.apache.hadoop.hbase.replication.ReplicationException; -075import org.apache.hadoop.hbase.replication.ReplicationPeerConfig; -076import org.apache.hadoop.hbase.replication.ReplicationPeerDescription; -077import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback; -078import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil; -079import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter; -080import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService; -081import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest; -082import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse; -083import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest; -084import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse; -085import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos; -086import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair; -087import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription; -088import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema; -089import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest; -090import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse; -091import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest; -092import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse; -093import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest; -094import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse; -095import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest; -096import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse; -097import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest; -098import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse; -099import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest; -100import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse; -101import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest; -102import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse; -103import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest; -104import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse; -105import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest; -106import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse; -107import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest; -108import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse; -109import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest; -110import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse; -111import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest; -112import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse; -113import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest; -114import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse; -115import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest; -116import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse; -117import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest; -118import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse; -119import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest; -120import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse; -121import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest; -122import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse; -123import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest; -124import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse; -125import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest; -126import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse; -127import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest; -128import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse; -129import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest; -130import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse; -131import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest; -132import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse; -133import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest; -134import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse; -135import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest; -136import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse; -137import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService; -138import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest; -139import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse; -140import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest; -141import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse; -142import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest; -143import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse; -144import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest; -145import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse; -146import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest; -147import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse; -148import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest; -149import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse; -150import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest; -151import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse; -152import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest; -153import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse; -154import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest; -155import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse; -156import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest; -157import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse; -158import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest; -159import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse; -160import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest; -161import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse; -162import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest; -163import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse; -164import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest; -165import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse; -166import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest; -167import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse; -168import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest; -169import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse; -170import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest; -171import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse; -172import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest; -173import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse; -174import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils; -175import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException; -176import org.apache.hadoop.hbase.snapshot.SnapshotCreationException; -177import org.apache.hadoop.hbase.util.Bytes; -178import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; -179import org.apache.hadoop.hbase.util.ForeignExceptionUtil; -180import org.apache.hadoop.hbase.util.Pair; -181 -182/** -183 * The implementation of AsyncAdmin. -184 */ -185@InterfaceAudience.Private -186@InterfaceStability.Evolving -187public class AsyncHBaseAdmin implements AsyncAdmin { +043import org.apache.commons.io.IOUtils; +044import org.apache.commons.logging.Log; +045import org.apache.commons.logging.LogFactory; +046import org.apache.hadoop.hbase.HColumnDescriptor; +047import org.apache.hadoop.hbase.HRegionInfo; +048import org.apache.hadoop.hbase.HRegionLocation; +049import org.apache.hadoop.hbase.MetaTableAccessor; +050import org.apache.hadoop.hbase.MetaTableAccessor.QueryType; +051import org.apache.hadoop.hbase.NotServingRegionException; +052import org.apache.hadoop.hbase.ProcedureInfo; +053import org.apache.hadoop.hbase.RegionLocations; +054import org.apache.hadoop.hbase.ServerName; +055import org.apache.hadoop.hbase.NamespaceDescriptor; +056import org.apache.hadoop.hbase.HConstants; +057import org.apache.hadoop.hbase.TableExistsException; +058import org.apache.hadoop.hbase.TableName; +059import org.apache.hadoop.hbase.AsyncMetaTableAccessor; +060import org.apache.hadoop.hbase.TableNotDisabledException; +061import org.apache.hadoop.hbase.TableNotEnabledException; +062import org.apache.hadoop.hbase.TableNotFoundException; +063import org.apache.hadoop.hbase.UnknownRegionException; +064import org.apache.hadoop.hbase.classification.InterfaceAudience; +065import org.apache.hadoop.hbase.classification.InterfaceStability; +066import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder; +067import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder; +068import org.apache.hadoop.hbase.client.Scan.ReadType; +069import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper; +070import org.apache.hadoop.hbase.client.replication.TableCFs; +071import org.apache.hadoop.hbase.exceptions.DeserializationException; +072import org.apache.hadoop.hbase.ipc.HBaseRpcController; +073import org.apache.hadoop.hbase.quotas.QuotaFilter; +074import org.apache.hadoop.hbase.quotas.QuotaSettings; +075import org.apache.hadoop.hbase.quotas.QuotaTableUtil; +076import org.apache.hadoop.hbase.replication.ReplicationException; +077import org.apache.hadoop.hbase.replication.ReplicationPeerConfig; +078import org.apache.hadoop.hbase.replication.ReplicationPeerDescription; +079import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback; +080import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil; +081import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter; +082import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService; +083import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest; +084import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse; +085import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest; +086import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse; +087import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest; +088import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse; +089import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest; +090import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse; +091import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest; +092import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse; +093import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos; +094import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription; +095import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema; +096import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest; +097import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse; +098import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest; +099import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse; +100import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest; +101import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse; +102import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest; +103import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse; +104import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest; +105import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse; +106import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest; +107import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse; +108import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest; +109import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse; +110import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest; +111import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse; +112import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest; +113import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse; +114import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest; +115import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse; +116import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest; +117import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse; +118import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest; +119import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse; +120import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest; +121import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse; +122import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest; +123import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse; +124import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest; +125import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse; +126import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest; +127import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse; +128import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest; +129import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse; +130import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest; +131import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse; +132import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest; +133import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse; +134import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest; +135import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse; +136import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest; +137import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse; +138import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest; +139import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse; +140import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest; +141import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse; +142import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest; +143import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse; +144import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService; +145import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest; +146import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse; +147import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest; +148import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse; +149import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest; +150import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse; +151import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest; +152import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse; +153import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest; +154import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse; +155import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest; +156import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse; +157import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest; +158import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse; +159import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest; +160import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse; +161import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest; +162import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse; +163import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest; +164import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse; +165import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest; +166import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse; +167import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest; +168import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse; +169import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest; +170import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse; +171import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest; +172import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse; +173import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest; +174import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse; +175import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest; +176import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse; +177import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest; +178import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse; +179import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest; +180import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse; +181import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils; +182import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException; +183import org.apache.hadoop.hbase.snapshot.SnapshotCreationException; +184import org.apache.hadoop.hbase.util.Bytes; +185import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; +186import org.apache.hadoop.hbase.util.ForeignExceptionUtil; +187import org.apache.hadoop.hbase.util.Pair; 188 -189 private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class); -190 -191 private final AsyncConnectionImpl connection; -192 -193 private final RawAsyncTable metaTable; -194 -195 private final long rpcTimeoutNs; +189/** +190 * The implementation of AsyncAdmin. +191 */ +192@InterfaceAudience.Private +193@InterfaceStability.Evolving +194public class AsyncHBaseAdmin implements AsyncAdmin { +195 public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc"; 196 -197 private final long operationTimeoutNs; +197 private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class); 198 -199 private final long pauseNs; +199 private final AsyncConnectionImpl connection; 200 -201 private final int maxAttempts; +201 private final RawAsyncTable metaTable; 202 -203 private final int startLogErrorsCnt; +203 private final long rpcTimeoutNs; 204 -205 private final NonceGenerator ng; +205 private final long operationTimeoutNs; 206 -207 AsyncHBaseAdmin(AsyncConnectionImpl connection) { -208 this.connection = connection; -209 this.metaTable = connection.getRawTable(META_TABLE_NAME); -210 this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs(); -211 this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs(); -212 this.pauseNs = connection.connConf.getPauseNs(); -213 this.maxAttempts = connection.connConf.getMaxRetries(); -214 this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt(); -215 this.ng = connection.getNonceGenerator(); -216 } -217 -218 private <T> MasterRequestCallerBuilder<T> newMasterCaller() { -219 return this.connection.callerFactory.<T> masterRequest() -220 .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS) -221 .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS) -222 .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts) -223 .startLogErrorsCnt(startLogErrorsCnt); +207 private final long pauseNs; +208 +209 private final int maxAttempts; +210 +211 private final int startLogErrorsCnt; +212 +213 private final NonceGenerator ng; +214 +215 AsyncHBaseAdmin(AsyncConnectionImpl connection) { +216 this.connection = connection; +217 this.metaTable = connection.getRawTable(META_TABLE_NAME); +218 this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs(); +219 this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs(); +220 this.pauseNs = connection.connConf.getPauseNs(); +221 this.maxAttempts = connection.connConf.getMaxRetries(); +222 this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt(); +223 this.ng = connection.getNonceGenerator(); 224 } 225 -226 private <T> AdminRequestCallerBuilder<T> newAdminCaller() { -227 return this.connection.callerFactory.<T> adminRequest() +226 private <T> MasterRequestCallerBuilder<T> newMasterCaller() { +227 return this.connection.callerFactory.<T> masterRequest() 228 .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS) 229 .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS) 230 .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts) 231 .startLogErrorsCnt(startLogErrorsCnt); 232 } 233 -234 @FunctionalInterface -235 private interface MasterRpcCall<RESP, REQ> { -236 void call(MasterService.Interface stub, HBaseRpcController controller, REQ req, -237 RpcCallback<RESP> done); -238 } -239 -240 @FunctionalInterface -241 private interface AdminRpcCall<RESP, REQ> { -242 void call(AdminService.Interface stub, HBaseRpcController controller, REQ req, -243 RpcCallback<RESP> done); -244 } -245 -246 @FunctionalInterface -247 private interface Converter<D, S> { -248 D convert(S src) throws IOException; -249 } -250 -251 private <PREQ, PRESP, RESP> CompletableFuture<RESP> call(HBaseRpcController controller, -252 MasterService.Interface stub, PREQ preq, MasterRpcCall<PRESP, PREQ> rpcCall, -253 Converter<RESP, PRESP> respConverter) { -254 CompletableFuture<RESP> future = new CompletableFuture<>(); -255 rpcCall.call(stub, controller, preq, new RpcCallback<PRESP>() { -256 -257 @Override -258 public void run(PRESP resp) { -259 if (controller.failed()) { -260 future.completeExceptionally(controller.getFailed()); -261 } else { -262 try { -263 future.complete(respConverter.convert(resp)); -264 } catch (IOException e) { -265 future.completeExceptionally(e); -266 } -267 } -268 } -269 }); -270 return future; -271 } -272 -273 //TODO abstract call and adminCall into a single method. -274 private <PREQ, PRESP, RESP> CompletableFuture<RESP> adminCall(HBaseRpcController controller, -275 AdminService.Interface stub, PREQ preq, AdminRpcCall<PRESP, PREQ> rpcCall, -276 Converter<RESP, PRESP> respConverter) { -277 -278 CompletableFuture<RESP> future = new CompletableFuture<>(); -279 rpcCall.call(stub, controller, preq, new RpcCallback<PRESP>() { +234 private <T> AdminRequestCallerBuilder<T> newAdminCaller() { +235 return this.connection.callerFactory.<T> adminRequest() +236 .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS) +237 .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS) +238 .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts) +239 .startLogErrorsCnt(startLogErrorsCnt); +240 } +241 +242 @FunctionalInterface +243 private interface MasterRpcCall<RESP, REQ> { +244 void call(MasterService.Interface stub, HBaseRpcController controller, REQ req, +245 RpcCallback<RESP> done); +246 } +247 +248 @FunctionalInterface +249 private interface AdminRpcCall<RESP, REQ> { +250 void call(AdminService.Interface stub, HBaseRpcController controller, REQ req, +251 RpcCallback<RESP> done); +252 } +253 +254 @FunctionalInterface +255 private interface Converter<D, S> { +256 D convert(S src) throws IOException; +257 } +258 +259 private <PREQ, PRESP, RESP> CompletableFuture<RESP> call(HBaseRpcController controller, +260 MasterService.Interface stub, PREQ preq, MasterRpcCall<PRESP, PREQ> rpcCall, +261 Converter<RESP, PRESP> respConverter) { +262 CompletableFuture<RESP> future = new CompletableFuture<>(); +263 rpcCall.call(stub, controller, preq, new RpcCallback<PRESP>() { +264 +265 @Override +266 public void run(PRESP resp) { +267 if (controller.failed()) { +268 future.completeExceptionally(controller.getFailed()); +269 } else { +270 try { +271 future.complete(respConverter.convert(resp)); +272 } catch (IOException e) { +273 future.completeExceptionally(e); +274 } +275 } +276 } +277 }); +278 return future; +279 } 280 -281 @Override -282 public void run(PRESP resp) { -283 if (controller.failed()) { -284 future.completeExceptionally(new IOException(controller.errorText())); -285 } else { -286 try { -287 future.complete(respConverter.convert(resp)); -288 } catch (IOException e) { -289 future.completeExceptionally(e); -290 } -291 } -292 } -293 }); -294 return future; -295 } -296 -297 private <PREQ, PRESP> CompletableFuture<Void> procedureCall(PREQ preq, -298 MasterRpcCall<PRESP, PREQ> rpcCall, Converter<Long, PRESP> respConverter, -299 ProcedureBiConsumer consumer) { -300 CompletableFuture<Long> procFuture = this -301 .<Long> newMasterCaller() -302 .action( -303 (controller, stub) -> this.<PREQ, PRESP, Long> call(controller, stub, preq, rpcCall, -304 respConverter)).call(); -305 return waitProcedureResult(procFuture).whenComplete(consumer); -306 } -307 -308 @FunctionalInterface -309 private interface TableOperator { -310 CompletableFuture<Void> operate(TableName table); -311 } -312 -313 private CompletableFuture<TableDescriptor[]> batchTableOperations(Pattern pattern, -314 TableOperator operator, String operationType) { -315 CompletableFuture<TableDescriptor[]> future = new CompletableFuture<>(); -316 List<TableDescriptor> failed = new LinkedList<>(); -317 listTables(pattern, false).whenComplete( -318 (tables, error) -> { -319 if (error != null) { -320 future.completeExceptionally(error); -321 return; -322 } -323 CompletableFuture[] futures = Arrays.stream(tables) -324 .map((table) -> operator.operate(table.getTableName()).whenComplete((v, ex) -> { -325 if (ex != null) { -326 LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex); -327 failed.add(table); -328 } -329 })).<CompletableFuture> toArray(size -> new CompletableFuture[size]); -330 CompletableFuture.allOf(futures).thenAccept((v) -> { -331 future.complete(failed.toArray(new TableDescriptor[failed.size()])); -332 }); -333 }); -334 return future; -335 } -336 -337 @Override -338 public AsyncConnectionImpl getConnection() { -339 return this.connection; -340 } -341 -342 @Override -343 public CompletableFuture<Boolean> tableExists(TableName tableName) { -344 return AsyncMetaTableAccessor.tableExists(metaTable, tableName); -345 } -346 -347 @Override -348 public CompletableFuture<TableDescriptor[]> listTables() { -349 return listTables((Pattern) null, false); -350 } -351 -352 @Override -353 public CompletableFuture<TableDescriptor[]> listTables(String regex, boolean includeSysTables) { -354 return listTables(Pattern.compile(regex), false); -355 } -356 -357 @Override -358 public CompletableFuture<TableDescriptor[]> listTables(Pattern pattern, boolean includeSysTables) { -359 return this -360 .<TableDescriptor[]>newMasterCaller() -361 .action( -362 (controller, stub) -> this -363 .<GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]> call( -364 controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern, -365 includeSysTables), (s, c, req, done) -> s.getTableDescriptors(c, req, done), ( -366 resp) -> ProtobufUtil.getTableDescriptorArray(resp))).call(); -367 } -368 -369 @Override -370 public CompletableFuture<TableName[]> listTableNames() { -371 return listTableNames((Pattern) null, false); -372 } -373 -374 @Override -375 public CompletableFuture<TableName[]> listTableNames(String regex, boolean includeSysTables) { -376 return listTableNames(Pattern.compile(regex), false); -377 } -378 -379 @Override -380 public CompletableFuture<TableName[]> listTableNames(Pattern pattern, boolean includeSysTables) { -381 return this -382 .<TableName[]>newMasterCaller() -383 .action( -384 (controller, stub) -> this -385 .<GetTableNamesRequest, GetTableNamesResponse, TableName[]> call(controller, stub, -386 RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req, -387 done) -> s.getTableNames(c, req, done), (resp) -> ProtobufUtil -388 .getTableNameArray(resp.getTableNamesList()))).call(); -389 } -390 -391 @Override -392 public CompletableFuture<TableDescriptor> getTableDescriptor(TableName tableName) { -393 CompletableFuture<TableDescriptor> future = new CompletableFuture<>(); -394 this.<List<TableSchema>> newMasterCaller() -395 .action( -396 (controller, stub) -> this -397 .<GetTableDescriptorsRequest, GetTableDescriptorsResponse, List<TableSchema>> call( -398 controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s, -399 c, req, done) -> s.getTableDescriptors(c, req, done), (resp) -> resp -400 .getTableSchemaList())).call().whenComplete((tableSchemas, error) -> { -401 if (error != null) { -402 future.completeExceptionally(error); -403 return; -404 } -405 if (!tableSchemas.isEmpty()) { -406 future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0))); -407 } else { -408 future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString())); -409 } -410 }); -411 return future; -412 } -413 -414 @Override -415 public CompletableFuture<Void> createTable(TableDescriptor desc) { -416 return createTable(desc, null); -417 } -418 -419 @Override -420 public CompletableFuture<Void> createTable(TableDescriptor desc, byte[] startKey, byte[] endKey, -421 int numRegions) { -422 try { -423 return createTable(desc, getSplitKeys(startKey, endKey, numRegions)); -424 } catch (IllegalArgumentException e) { -425 return failedFuture(e); -426 } -427 } -428 -429 @Override -430 public CompletableFuture<Void> createTable(TableDescriptor desc, byte[][] splitKeys) { -431 if (desc.getTableName() == null) { -432 return failedFuture(new IllegalArgumentException("TableName cannot be null")); -433 } -434 if (splitKeys != null && splitKeys.length > 0) { -435 Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR); -436 // Verify there are no duplicate split keys -437 byte[] lastKey = null; -438 for (byte[] splitKey : splitKeys) { -439 if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) { -440 return failedFuture(new IllegalArgumentException( -441 "Empty split key must not be passed in the split keys.")); -442 } -443 if (lastKey != null && Bytes.equals(splitKey, lastKey)) { -444 return failedFuture(new IllegalArgumentException("All split keys must be unique, " -445 + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", " -446 + Bytes.toStringBinary(lastKey))); -447 } -448 lastKey = splitKey; -449 } -450 } -451 -452 return this.<CreateTableRequest, CreateTableResponse> procedureCall( -453 RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()), -454 (s, c, req, done) -> s.createTable(c, req, done), (resp) -> resp.getProcId(), -455 new CreateTableProcedureBiConsumer(this, desc.getTableName())); -456 } -457 -458 @Override -459 public CompletableFuture<Void> deleteTable(TableName tableName) { -460 return this.<DeleteTableRequest, DeleteTableResponse> procedureCall(RequestConverter -461 .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()), -462 (s, c, req, done) -> s.deleteTable(c, req, done), (resp) -> resp.getProcId(), -463 new DeleteTableProcedureBiConsumer(this, tableName)); +281 //TODO abstract call and adminCall into a single method. +282 private <PREQ, PRESP, RESP> CompletableFuture<RESP> adminCall(HBaseRpcController controller, +283 AdminService.Interface stub, PREQ preq, AdminRpcCall<PRESP, PREQ> rpcCall, +284 Converter<RESP, PRESP> respConverter) { +285 +286 CompletableFuture<RESP> future = new CompletableFuture<>(); +287 rpcCall.call(stub, controller, preq, new RpcCallback<PRESP>() { +288 +289 @Override +290 public void run(PRESP resp) { +291 if (controller.failed()) { +292 future.completeExceptionally(new IOException(controller.errorText())); +293 } else { +294 try { +295 future.complete(respConverter.convert(resp)); +296 } catch (IOException e) { +297 future.completeExceptionally(e); +298 } +299 } +300 } +301 }); +302 return future; +303 } +304 +305 private <PREQ, PRESP> CompletableFuture<Void> procedureCall(PREQ preq, +306 MasterRpcCall<PRESP, PREQ> rpcCall, Converter<Long, PRESP> respConverter, +307 ProcedureBiConsumer consumer) { +308 CompletableFuture<Long> procFuture = this +309 .<Long> newMasterCaller() +310 .action( +311 (controller, stub) -> this.<PREQ, PRESP, Long> call(controller, stub, preq, rpcCall, +312 respConverter)).call(); +313 return waitProcedureResult(procFuture).whenComplete(consumer); +314 } +315 +316 @FunctionalInterface +317 private interface TableOperator { +318 CompletableFuture<Void> operate(TableName table); +319 } +320 +321 private CompletableFuture<TableDescriptor[]> batchTableOperations(Pattern pattern, +322 TableOperator operator, String operationType) { +323 CompletableFuture<TableDescriptor[]> future = new CompletableFuture<>(); +324 List<TableDescriptor> failed = new LinkedList<>(); +325 listTables(pattern, false).whenComplete( +326 (tables, error) -> { +327 if (error != null) { +328 future.completeExceptionally(error); +329 return; +330 } +331 CompletableFuture[] futures = Arrays.stream(tables) +332 .map((table) -> operator.operate(table.getTableName()).whenComplete((v, ex) -> { +333 if (ex != null) { +334 LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex); +335 failed.add(table); +336 } +337 })).<CompletableFuture> toArray(size -> new CompletableFuture[size]); +338 CompletableFuture.allOf(futures).thenAccept((v) -> { +339 future.complete(failed.toArray(new TableDescriptor[failed.size()])); +340 }); +341 }); +342 return future; +343 } +344 +345 @Override +346 public AsyncConnectionImpl getConnection() { +347 return this.connection; +348 } +349 +350 @Override +351 public CompletableFuture<Boolean> tableExists(TableName tableName) { +352 return AsyncMetaTableAccessor.tableExists(metaTable, tableName); +353 } +354 +355 @Override +356 public CompletableFuture<TableDescriptor[]> listTables() { +357 return listTables((Pattern) null, false); +358 } +359 +360 @Override +361 public CompletableFuture<TableDescriptor[]> listTables(String regex, boolean includeSysTables) { +362 return listTables(Pattern.compile(regex), false); +363 } +364 +365 @Override +366 public CompletableFuture<TableDescriptor[]> listTables(Pattern pattern, boolean includeSysTables) { +367 return this +368 .<TableDescriptor[]>newMasterCaller() +369 .action( +370 (controller, stub) -> this +371 .<GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]> call( +372 controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern, +373 includeSysTables), (s, c, req, done) -> s.getTableDescriptors(c, req, done), ( +374 resp) -> ProtobufUtil.getTableDescriptorArray(resp))).call(); +375 } +376 +377 @Override +378 public CompletableFuture<TableName[]> listTableNames() { +379 return listTableNames((Pattern) null, false); +380 } +381 +382 @Override +383 public CompletableFuture<TableName[]> listTableNames(String regex, boolean includeSysTables) { +384 return listTableNames(Pattern.compile(regex), false); +385 } +386 +387 @Override +388 public CompletableFuture<TableName[]> listTableNames(Pattern pattern, boolean includeSysTables) { +389 return this +390 .<TableName[]>newMasterCaller() +391 .action( +392 (controller, stub) -> this +393 .<GetTableNamesRequest, GetTableNamesResponse, TableName[]> call(controller, stub, +394 RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req, +395 done) -> s.getTableNames(c, req, done), (resp) -> ProtobufUtil +396 .getTableNameArray(resp.getTableNamesLi