hbase git commit: HBASE-17915 Implement async replication admin methods
Repository: hbase Updated Branches: refs/heads/master b1ef8dd43 -> 40cc666ac HBASE-17915 Implement async replication admin methods Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/40cc666a Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/40cc666a Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/40cc666a Branch: refs/heads/master Commit: 40cc666ac984e846a8c7105b771ce6bec90c4ad3 Parents: b1ef8dd Author: Guanghao Zhang Authored: Thu Apr 20 18:13:03 2017 +0800 Committer: Guanghao Zhang Committed: Thu Apr 20 18:13:03 2017 +0800 -- .../apache/hadoop/hbase/client/AsyncAdmin.java | 92 .../hadoop/hbase/client/AsyncHBaseAdmin.java| 249 +-- .../apache/hadoop/hbase/client/HBaseAdmin.java | 58 +-- .../replication/ReplicationSerDeHelper.java | 67 +++ .../hadoop/hbase/client/TestAsyncAdminBase.java | 2 +- .../client/TestAsyncReplicationAdminApi.java| 416 +++ 6 files changed, 802 insertions(+), 82 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/40cc666a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java -- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java index 270f28f..5d2955f 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java @@ -18,6 +18,8 @@ package org.apache.hadoop.hbase.client; import java.util.List; +import java.util.Collection; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.regex.Pattern; @@ -30,6 +32,9 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.quotas.QuotaFilter; import org.apache.hadoop.hbase.quotas.QuotaSettings; +import org.apache.hadoop.hbase.client.replication.TableCFs; +import org.apache.hadoop.hbase.replication.ReplicationPeerConfig; +import org.apache.hadoop.hbase.replication.ReplicationPeerDescription; import org.apache.hadoop.hbase.util.Pair; /** @@ -481,4 +486,91 @@ public interface AsyncAdmin { * @return the QuotaSetting list, which wrapped by a CompletableFuture. */ CompletableFuture> getQuota(QuotaFilter filter); + + /** + * Add a new replication peer for replicating data to slave cluster + * @param peerId a short name that identifies the peer + * @param peerConfig configuration for the replication slave cluster + */ + CompletableFuture addReplicationPeer(final String peerId, + final ReplicationPeerConfig peerConfig); + + /** + * Remove a peer and stop the replication + * @param peerId a short name that identifies the peer + */ + CompletableFuture removeReplicationPeer(final String peerId); + + /** + * Restart the replication stream to the specified peer + * @param peerId a short name that identifies the peer + */ + CompletableFuture enableReplicationPeer(final String peerId); + + /** + * Stop the replication stream to the specified peer + * @param peerId a short name that identifies the peer + */ + CompletableFuture disableReplicationPeer(final String peerId); + + /** + * Returns the configured ReplicationPeerConfig for the specified peer + * @param peerId a short name that identifies the peer + * @return ReplicationPeerConfig for the peer wrapped by a {@link CompletableFuture}. + */ + CompletableFuture getReplicationPeerConfig(final String peerId); + + /** + * Update the peerConfig for the specified peer + * @param peerId a short name that identifies the peer + * @param peerConfig new config for the peer + */ + CompletableFuture updateReplicationPeerConfig(final String peerId, + final ReplicationPeerConfig peerConfig); + + /** + * Append the replicable table-cf config of the specified peer + * @param id a short that identifies the cluster + * @param tableCfs A map from tableName to column family names + */ + CompletableFuture appendReplicationPeerTableCFs(String id, + Map> tableCfs); + + /** + * Remove some table-cfs from config of the specified peer + * @param id a short name that identifies the cluster + * @param tableCfs A map from tableName to column family names + */ + CompletableFuture removeReplicationPeerTableCFs(String id, + Map> tableCfs); + + /** + * Return a list of replication peers. + * @return a list of replication peers description. The return value will be wrapped by a + * {@link CompletableFuture}. + */ + CompletableFuture> listReplicationPeers(); + + /** + * Return a list of replicatio
[17/40] hbase git commit: HBASE-17915 Implement async replication admin methods
HBASE-17915 Implement async replication admin methods Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/40cc666a Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/40cc666a Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/40cc666a Branch: refs/heads/hbase-12439 Commit: 40cc666ac984e846a8c7105b771ce6bec90c4ad3 Parents: b1ef8dd Author: Guanghao Zhang Authored: Thu Apr 20 18:13:03 2017 +0800 Committer: Guanghao Zhang Committed: Thu Apr 20 18:13:03 2017 +0800 -- .../apache/hadoop/hbase/client/AsyncAdmin.java | 92 .../hadoop/hbase/client/AsyncHBaseAdmin.java| 249 +-- .../apache/hadoop/hbase/client/HBaseAdmin.java | 58 +-- .../replication/ReplicationSerDeHelper.java | 67 +++ .../hadoop/hbase/client/TestAsyncAdminBase.java | 2 +- .../client/TestAsyncReplicationAdminApi.java| 416 +++ 6 files changed, 802 insertions(+), 82 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/40cc666a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java -- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java index 270f28f..5d2955f 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncAdmin.java @@ -18,6 +18,8 @@ package org.apache.hadoop.hbase.client; import java.util.List; +import java.util.Collection; +import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.regex.Pattern; @@ -30,6 +32,9 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.quotas.QuotaFilter; import org.apache.hadoop.hbase.quotas.QuotaSettings; +import org.apache.hadoop.hbase.client.replication.TableCFs; +import org.apache.hadoop.hbase.replication.ReplicationPeerConfig; +import org.apache.hadoop.hbase.replication.ReplicationPeerDescription; import org.apache.hadoop.hbase.util.Pair; /** @@ -481,4 +486,91 @@ public interface AsyncAdmin { * @return the QuotaSetting list, which wrapped by a CompletableFuture. */ CompletableFuture> getQuota(QuotaFilter filter); + + /** + * Add a new replication peer for replicating data to slave cluster + * @param peerId a short name that identifies the peer + * @param peerConfig configuration for the replication slave cluster + */ + CompletableFuture addReplicationPeer(final String peerId, + final ReplicationPeerConfig peerConfig); + + /** + * Remove a peer and stop the replication + * @param peerId a short name that identifies the peer + */ + CompletableFuture removeReplicationPeer(final String peerId); + + /** + * Restart the replication stream to the specified peer + * @param peerId a short name that identifies the peer + */ + CompletableFuture enableReplicationPeer(final String peerId); + + /** + * Stop the replication stream to the specified peer + * @param peerId a short name that identifies the peer + */ + CompletableFuture disableReplicationPeer(final String peerId); + + /** + * Returns the configured ReplicationPeerConfig for the specified peer + * @param peerId a short name that identifies the peer + * @return ReplicationPeerConfig for the peer wrapped by a {@link CompletableFuture}. + */ + CompletableFuture getReplicationPeerConfig(final String peerId); + + /** + * Update the peerConfig for the specified peer + * @param peerId a short name that identifies the peer + * @param peerConfig new config for the peer + */ + CompletableFuture updateReplicationPeerConfig(final String peerId, + final ReplicationPeerConfig peerConfig); + + /** + * Append the replicable table-cf config of the specified peer + * @param id a short that identifies the cluster + * @param tableCfs A map from tableName to column family names + */ + CompletableFuture appendReplicationPeerTableCFs(String id, + Map> tableCfs); + + /** + * Remove some table-cfs from config of the specified peer + * @param id a short name that identifies the cluster + * @param tableCfs A map from tableName to column family names + */ + CompletableFuture removeReplicationPeerTableCFs(String id, + Map> tableCfs); + + /** + * Return a list of replication peers. + * @return a list of replication peers description. The return value will be wrapped by a + * {@link CompletableFuture}. + */ + CompletableFuture> listReplicationPeers(); + + /** + * Return a list of replication peers. + * @param regex The regular expression to match peer id + * @r