http://git-wip-us.apache.org/repos/asf/hbase-site/blob/49431b18/apidocs/src-html/org/apache/hadoop/hbase/client/Admin.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/Admin.html
b/apidocs/src-html/org/apache/hadoop/hbase/client/Admin.html
index 44c2515..1771444 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/Admin.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/Admin.html
@@ -2474,7 +2474,7 @@
<span class="sourceLineNo">2466</span> /**<a name="line.2466"></a>
<span class="sourceLineNo">2467</span> * Add a new replication peer for
replicating data to slave cluster.<a name="line.2467"></a>
<span class="sourceLineNo">2468</span> * @param peerId a short name that
identifies the peer<a name="line.2468"></a>
-<span class="sourceLineNo">2469</span> * @param peerConfig configuration for
the replication slave cluster<a name="line.2469"></a>
+<span class="sourceLineNo">2469</span> * @param peerConfig configuration for
the replication peer<a name="line.2469"></a>
<span class="sourceLineNo">2470</span> * @throws IOException if a remote or
network exception occurs<a name="line.2470"></a>
<span class="sourceLineNo">2471</span> */<a name="line.2471"></a>
<span class="sourceLineNo">2472</span> default void addReplicationPeer(String
peerId, ReplicationPeerConfig peerConfig)<a name="line.2472"></a>
@@ -2485,7 +2485,7 @@
<span class="sourceLineNo">2477</span> /**<a name="line.2477"></a>
<span class="sourceLineNo">2478</span> * Add a new replication peer for
replicating data to slave cluster.<a name="line.2478"></a>
<span class="sourceLineNo">2479</span> * @param peerId a short name that
identifies the peer<a name="line.2479"></a>
-<span class="sourceLineNo">2480</span> * @param peerConfig configuration for
the replication slave cluster<a name="line.2480"></a>
+<span class="sourceLineNo">2480</span> * @param peerConfig configuration for
the replication peer<a name="line.2480"></a>
<span class="sourceLineNo">2481</span> * @param enabled peer state, true if
ENABLED and false if DISABLED<a name="line.2481"></a>
<span class="sourceLineNo">2482</span> * @throws IOException if a remote or
network exception occurs<a name="line.2482"></a>
<span class="sourceLineNo">2483</span> */<a name="line.2483"></a>
@@ -2493,152 +2493,233 @@
<span class="sourceLineNo">2485</span> throws IOException;<a
name="line.2485"></a>
<span class="sourceLineNo">2486</span><a name="line.2486"></a>
<span class="sourceLineNo">2487</span> /**<a name="line.2487"></a>
-<span class="sourceLineNo">2488</span> * Remove a peer and stop the
replication.<a name="line.2488"></a>
-<span class="sourceLineNo">2489</span> * @param peerId a short name that
identifies the peer<a name="line.2489"></a>
-<span class="sourceLineNo">2490</span> * @throws IOException if a remote or
network exception occurs<a name="line.2490"></a>
-<span class="sourceLineNo">2491</span> */<a name="line.2491"></a>
-<span class="sourceLineNo">2492</span> void removeReplicationPeer(String
peerId) throws IOException;<a name="line.2492"></a>
-<span class="sourceLineNo">2493</span><a name="line.2493"></a>
-<span class="sourceLineNo">2494</span> /**<a name="line.2494"></a>
-<span class="sourceLineNo">2495</span> * Restart the replication stream to
the specified peer.<a name="line.2495"></a>
-<span class="sourceLineNo">2496</span> * @param peerId a short name that
identifies the peer<a name="line.2496"></a>
-<span class="sourceLineNo">2497</span> * @throws IOException if a remote or
network exception occurs<a name="line.2497"></a>
-<span class="sourceLineNo">2498</span> */<a name="line.2498"></a>
-<span class="sourceLineNo">2499</span> void enableReplicationPeer(String
peerId) throws IOException;<a name="line.2499"></a>
-<span class="sourceLineNo">2500</span><a name="line.2500"></a>
-<span class="sourceLineNo">2501</span> /**<a name="line.2501"></a>
-<span class="sourceLineNo">2502</span> * Stop the replication stream to the
specified peer.<a name="line.2502"></a>
-<span class="sourceLineNo">2503</span> * @param peerId a short name that
identifies the peer<a name="line.2503"></a>
-<span class="sourceLineNo">2504</span> * @throws IOException if a remote or
network exception occurs<a name="line.2504"></a>
-<span class="sourceLineNo">2505</span> */<a name="line.2505"></a>
-<span class="sourceLineNo">2506</span> void disableReplicationPeer(String
peerId) throws IOException;<a name="line.2506"></a>
-<span class="sourceLineNo">2507</span><a name="line.2507"></a>
-<span class="sourceLineNo">2508</span> /**<a name="line.2508"></a>
-<span class="sourceLineNo">2509</span> * Returns the configured
ReplicationPeerConfig for the specified peer.<a name="line.2509"></a>
-<span class="sourceLineNo">2510</span> * @param peerId a short name that
identifies the peer<a name="line.2510"></a>
-<span class="sourceLineNo">2511</span> * @return ReplicationPeerConfig for
the peer<a name="line.2511"></a>
-<span class="sourceLineNo">2512</span> * @throws IOException if a remote or
network exception occurs<a name="line.2512"></a>
-<span class="sourceLineNo">2513</span> */<a name="line.2513"></a>
-<span class="sourceLineNo">2514</span> ReplicationPeerConfig
getReplicationPeerConfig(String peerId) throws IOException;<a
name="line.2514"></a>
-<span class="sourceLineNo">2515</span><a name="line.2515"></a>
-<span class="sourceLineNo">2516</span> /**<a name="line.2516"></a>
-<span class="sourceLineNo">2517</span> * Update the peerConfig for the
specified peer.<a name="line.2517"></a>
-<span class="sourceLineNo">2518</span> * @param peerId a short name that
identifies the peer<a name="line.2518"></a>
-<span class="sourceLineNo">2519</span> * @param peerConfig new config for
the peer<a name="line.2519"></a>
-<span class="sourceLineNo">2520</span> * @throws IOException if a remote or
network exception occurs<a name="line.2520"></a>
-<span class="sourceLineNo">2521</span> */<a name="line.2521"></a>
-<span class="sourceLineNo">2522</span> void
updateReplicationPeerConfig(String peerId,<a name="line.2522"></a>
-<span class="sourceLineNo">2523</span> ReplicationPeerConfig peerConfig)
throws IOException;<a name="line.2523"></a>
+<span class="sourceLineNo">2488</span> * Add a new replication peer but does
not block and wait for it.<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span> * <p><a name="line.2489"></a>
+<span class="sourceLineNo">2490</span> * You can use Future.get(long,
TimeUnit) to wait on the operation to complete. It may throw<a
name="line.2490"></a>
+<span class="sourceLineNo">2491</span> * ExecutionException if there was an
error while executing the operation or TimeoutException in<a
name="line.2491"></a>
+<span class="sourceLineNo">2492</span> * case the wait timeout was not long
enough to allow the operation to complete.<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span> * @param peerId a short name that
identifies the peer<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span> * @param peerConfig configuration for
the replication peer<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span> * @return the result of the async
operation<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span> * @throws IOException IOException if
a remote or network exception occurs<a name="line.2496"></a>
+<span class="sourceLineNo">2497</span> */<a name="line.2497"></a>
+<span class="sourceLineNo">2498</span> default Future<Void>
addReplicationPeerAsync(String peerId, ReplicationPeerConfig peerConfig)<a
name="line.2498"></a>
+<span class="sourceLineNo">2499</span> throws IOException {<a
name="line.2499"></a>
+<span class="sourceLineNo">2500</span> return
addReplicationPeerAsync(peerId, peerConfig, true);<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span> }<a name="line.2501"></a>
+<span class="sourceLineNo">2502</span><a name="line.2502"></a>
+<span class="sourceLineNo">2503</span> /**<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span> * Add a new replication peer but does
not block and wait for it.<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span> * <p><a name="line.2505"></a>
+<span class="sourceLineNo">2506</span> * You can use Future.get(long,
TimeUnit) to wait on the operation to complete. It may throw<a
name="line.2506"></a>
+<span class="sourceLineNo">2507</span> * ExecutionException if there was an
error while executing the operation or TimeoutException in<a
name="line.2507"></a>
+<span class="sourceLineNo">2508</span> * case the wait timeout was not long
enough to allow the operation to complete.<a name="line.2508"></a>
+<span class="sourceLineNo">2509</span> * @param peerId a short name that
identifies the peer<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span> * @param peerConfig configuration for
the replication peer<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span> * @param enabled peer state, true if
ENABLED and false if DISABLED<a name="line.2511"></a>
+<span class="sourceLineNo">2512</span> * @return the result of the async
operation<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span> * @throws IOException IOException if
a remote or network exception occurs<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span> */<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span> Future<Void>
addReplicationPeerAsync(String peerId, ReplicationPeerConfig peerConfig,<a
name="line.2515"></a>
+<span class="sourceLineNo">2516</span> boolean enabled) throws
IOException;<a name="line.2516"></a>
+<span class="sourceLineNo">2517</span><a name="line.2517"></a>
+<span class="sourceLineNo">2518</span> /**<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span> * Remove a peer and stop the
replication.<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span> * @param peerId a short name that
identifies the peer<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span> * @throws IOException if a remote or
network exception occurs<a name="line.2521"></a>
+<span class="sourceLineNo">2522</span> */<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span> void removeReplicationPeer(String
peerId) throws IOException;<a name="line.2523"></a>
<span class="sourceLineNo">2524</span><a name="line.2524"></a>
<span class="sourceLineNo">2525</span> /**<a name="line.2525"></a>
-<span class="sourceLineNo">2526</span> * Append the replicable table column
family config from the specified peer.<a name="line.2526"></a>
-<span class="sourceLineNo">2527</span> * @param id a short that identifies
the cluster<a name="line.2527"></a>
-<span class="sourceLineNo">2528</span> * @param tableCfs A map from
tableName to column family names<a name="line.2528"></a>
-<span class="sourceLineNo">2529</span> * @throws ReplicationException if
tableCfs has conflict with existing config<a name="line.2529"></a>
-<span class="sourceLineNo">2530</span> * @throws IOException if a remote or
network exception occurs<a name="line.2530"></a>
-<span class="sourceLineNo">2531</span> */<a name="line.2531"></a>
-<span class="sourceLineNo">2532</span> void
appendReplicationPeerTableCFs(String id,<a name="line.2532"></a>
-<span class="sourceLineNo">2533</span> Map<TableName,
List<String>> tableCfs)<a name="line.2533"></a>
-<span class="sourceLineNo">2534</span> throws ReplicationException,
IOException;<a name="line.2534"></a>
-<span class="sourceLineNo">2535</span><a name="line.2535"></a>
-<span class="sourceLineNo">2536</span> /**<a name="line.2536"></a>
-<span class="sourceLineNo">2537</span> * Remove some table-cfs from config
of the specified peer.<a name="line.2537"></a>
-<span class="sourceLineNo">2538</span> * @param id a short name that
identifies the cluster<a name="line.2538"></a>
-<span class="sourceLineNo">2539</span> * @param tableCfs A map from
tableName to column family names<a name="line.2539"></a>
-<span class="sourceLineNo">2540</span> * @throws ReplicationException if
tableCfs has conflict with existing config<a name="line.2540"></a>
-<span class="sourceLineNo">2541</span> * @throws IOException if a remote or
network exception occurs<a name="line.2541"></a>
-<span class="sourceLineNo">2542</span> */<a name="line.2542"></a>
-<span class="sourceLineNo">2543</span> void
removeReplicationPeerTableCFs(String id,<a name="line.2543"></a>
-<span class="sourceLineNo">2544</span> Map<TableName,
List<String>> tableCfs)<a name="line.2544"></a>
-<span class="sourceLineNo">2545</span> throws ReplicationException,
IOException;<a name="line.2545"></a>
-<span class="sourceLineNo">2546</span><a name="line.2546"></a>
-<span class="sourceLineNo">2547</span> /**<a name="line.2547"></a>
-<span class="sourceLineNo">2548</span> * Return a list of replication
peers.<a name="line.2548"></a>
-<span class="sourceLineNo">2549</span> * @return a list of replication peers
description<a name="line.2549"></a>
-<span class="sourceLineNo">2550</span> * @throws IOException if a remote or
network exception occurs<a name="line.2550"></a>
-<span class="sourceLineNo">2551</span> */<a name="line.2551"></a>
-<span class="sourceLineNo">2552</span> List<ReplicationPeerDescription>
listReplicationPeers() throws IOException;<a name="line.2552"></a>
-<span class="sourceLineNo">2553</span><a name="line.2553"></a>
-<span class="sourceLineNo">2554</span> /**<a name="line.2554"></a>
-<span class="sourceLineNo">2555</span> * Return a list of replication
peers.<a name="line.2555"></a>
-<span class="sourceLineNo">2556</span> * @param pattern The compiled regular
expression to match peer id<a name="line.2556"></a>
-<span class="sourceLineNo">2557</span> * @return a list of replication peers
description<a name="line.2557"></a>
-<span class="sourceLineNo">2558</span> * @throws IOException if a remote or
network exception occurs<a name="line.2558"></a>
-<span class="sourceLineNo">2559</span> */<a name="line.2559"></a>
-<span class="sourceLineNo">2560</span> List<ReplicationPeerDescription>
listReplicationPeers(Pattern pattern) throws IOException;<a
name="line.2560"></a>
-<span class="sourceLineNo">2561</span><a name="line.2561"></a>
-<span class="sourceLineNo">2562</span> /**<a name="line.2562"></a>
-<span class="sourceLineNo">2563</span> * Mark region server(s) as
decommissioned to prevent additional regions from getting<a
name="line.2563"></a>
-<span class="sourceLineNo">2564</span> * assigned to them. Optionally unload
the regions on the servers. If there are multiple servers<a
name="line.2564"></a>
-<span class="sourceLineNo">2565</span> * to be decommissioned,
decommissioning them at the same time can prevent wasteful region<a
name="line.2565"></a>
-<span class="sourceLineNo">2566</span> * movements. Region unloading is
asynchronous.<a name="line.2566"></a>
-<span class="sourceLineNo">2567</span> * @param servers The list of servers
to decommission.<a name="line.2567"></a>
-<span class="sourceLineNo">2568</span> * @param offload True to offload the
regions from the decommissioned servers<a name="line.2568"></a>
-<span class="sourceLineNo">2569</span> */<a name="line.2569"></a>
-<span class="sourceLineNo">2570</span> void
decommissionRegionServers(List<ServerName> servers, boolean offload)
throws IOException;<a name="line.2570"></a>
-<span class="sourceLineNo">2571</span><a name="line.2571"></a>
-<span class="sourceLineNo">2572</span> /**<a name="line.2572"></a>
-<span class="sourceLineNo">2573</span> * List region servers marked as
decommissioned, which can not be assigned regions.<a name="line.2573"></a>
-<span class="sourceLineNo">2574</span> * @return List of decommissioned
region servers.<a name="line.2574"></a>
-<span class="sourceLineNo">2575</span> */<a name="line.2575"></a>
-<span class="sourceLineNo">2576</span> List<ServerName>
listDecommissionedRegionServers() throws IOException;<a name="line.2576"></a>
-<span class="sourceLineNo">2577</span><a name="line.2577"></a>
-<span class="sourceLineNo">2578</span> /**<a name="line.2578"></a>
-<span class="sourceLineNo">2579</span> * Remove decommission marker from a
region server to allow regions assignments.<a name="line.2579"></a>
-<span class="sourceLineNo">2580</span> * Load regions onto the server if a
list of regions is given. Region loading is<a name="line.2580"></a>
-<span class="sourceLineNo">2581</span> * asynchronous.<a
name="line.2581"></a>
-<span class="sourceLineNo">2582</span> * @param server The server to
recommission.<a name="line.2582"></a>
-<span class="sourceLineNo">2583</span> * @param encodedRegionNames Regions
to load onto the server.<a name="line.2583"></a>
-<span class="sourceLineNo">2584</span> */<a name="line.2584"></a>
-<span class="sourceLineNo">2585</span> void
recommissionRegionServer(ServerName server, List<byte[]>
encodedRegionNames)<a name="line.2585"></a>
-<span class="sourceLineNo">2586</span> throws IOException;<a
name="line.2586"></a>
-<span class="sourceLineNo">2587</span><a name="line.2587"></a>
-<span class="sourceLineNo">2588</span> /**<a name="line.2588"></a>
-<span class="sourceLineNo">2589</span> * Find all table and column families
that are replicated from this cluster<a name="line.2589"></a>
-<span class="sourceLineNo">2590</span> * @return the replicated table-cfs
list of this cluster.<a name="line.2590"></a>
-<span class="sourceLineNo">2591</span> */<a name="line.2591"></a>
-<span class="sourceLineNo">2592</span> List<TableCFs>
listReplicatedTableCFs() throws IOException;<a name="line.2592"></a>
-<span class="sourceLineNo">2593</span><a name="line.2593"></a>
-<span class="sourceLineNo">2594</span> /**<a name="line.2594"></a>
-<span class="sourceLineNo">2595</span> * Enable a table's replication
switch.<a name="line.2595"></a>
-<span class="sourceLineNo">2596</span> * @param tableName name of the
table<a name="line.2596"></a>
-<span class="sourceLineNo">2597</span> * @throws IOException if a remote or
network exception occurs<a name="line.2597"></a>
-<span class="sourceLineNo">2598</span> */<a name="line.2598"></a>
-<span class="sourceLineNo">2599</span> void enableTableReplication(TableName
tableName) throws IOException;<a name="line.2599"></a>
-<span class="sourceLineNo">2600</span><a name="line.2600"></a>
-<span class="sourceLineNo">2601</span> /**<a name="line.2601"></a>
-<span class="sourceLineNo">2602</span> * Disable a table's replication
switch.<a name="line.2602"></a>
-<span class="sourceLineNo">2603</span> * @param tableName name of the
table<a name="line.2603"></a>
-<span class="sourceLineNo">2604</span> * @throws IOException if a remote or
network exception occurs<a name="line.2604"></a>
-<span class="sourceLineNo">2605</span> */<a name="line.2605"></a>
-<span class="sourceLineNo">2606</span> void disableTableReplication(TableName
tableName) throws IOException;<a name="line.2606"></a>
-<span class="sourceLineNo">2607</span><a name="line.2607"></a>
-<span class="sourceLineNo">2608</span> /**<a name="line.2608"></a>
-<span class="sourceLineNo">2609</span> * Clear compacting queues on a
regionserver.<a name="line.2609"></a>
-<span class="sourceLineNo">2610</span> * @param serverName the region server
name<a name="line.2610"></a>
-<span class="sourceLineNo">2611</span> * @param queues the set of queue
name<a name="line.2611"></a>
-<span class="sourceLineNo">2612</span> * @throws IOException if a remote or
network exception occurs<a name="line.2612"></a>
-<span class="sourceLineNo">2613</span> * @throws InterruptedException<a
name="line.2613"></a>
-<span class="sourceLineNo">2614</span> */<a name="line.2614"></a>
-<span class="sourceLineNo">2615</span> void clearCompactionQueues(ServerName
serverName, Set<String> queues)<a name="line.2615"></a>
-<span class="sourceLineNo">2616</span> throws IOException,
InterruptedException;<a name="line.2616"></a>
-<span class="sourceLineNo">2617</span><a name="line.2617"></a>
-<span class="sourceLineNo">2618</span> /**<a name="line.2618"></a>
-<span class="sourceLineNo">2619</span> * List dead region servers.<a
name="line.2619"></a>
-<span class="sourceLineNo">2620</span> * @return List of dead region
servers.<a name="line.2620"></a>
-<span class="sourceLineNo">2621</span> */<a name="line.2621"></a>
-<span class="sourceLineNo">2622</span> default List<ServerName>
listDeadServers() throws IOException {<a name="line.2622"></a>
-<span class="sourceLineNo">2623</span> return
getClusterMetrics(EnumSet.of(Option.DEAD_SERVERS)).getDeadServerNames();<a
name="line.2623"></a>
-<span class="sourceLineNo">2624</span> }<a name="line.2624"></a>
-<span class="sourceLineNo">2625</span><a name="line.2625"></a>
-<span class="sourceLineNo">2626</span> /**<a name="line.2626"></a>
-<span class="sourceLineNo">2627</span> * Clear dead region servers from
master.<a name="line.2627"></a>
-<span class="sourceLineNo">2628</span> * @param servers list of dead region
servers.<a name="line.2628"></a>
-<span class="sourceLineNo">2629</span> * @throws IOException if a remote or
network exception occurs<a name="line.2629"></a>
-<span class="sourceLineNo">2630</span> * @return List of servers that are
not cleared<a name="line.2630"></a>
-<span class="sourceLineNo">2631</span> */<a name="line.2631"></a>
-<span class="sourceLineNo">2632</span> List<ServerName>
clearDeadServers(final List<ServerName> servers) throws IOException;<a
name="line.2632"></a>
-<span class="sourceLineNo">2633</span>}<a name="line.2633"></a>
+<span class="sourceLineNo">2526</span> * Remove a replication peer but does
not block and wait for it.<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span> * <p><a name="line.2527"></a>
+<span class="sourceLineNo">2528</span> * You can use Future.get(long,
TimeUnit) to wait on the operation to complete. It may throw<a
name="line.2528"></a>
+<span class="sourceLineNo">2529</span> * ExecutionException if there was an
error while executing the operation or TimeoutException in<a
name="line.2529"></a>
+<span class="sourceLineNo">2530</span> * case the wait timeout was not long
enough to allow the operation to complete.<a name="line.2530"></a>
+<span class="sourceLineNo">2531</span> * @param peerId a short name that
identifies the peer<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span> * @return the result of the async
operation<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span> * @throws IOException IOException if
a remote or network exception occurs<a name="line.2533"></a>
+<span class="sourceLineNo">2534</span> */<a name="line.2534"></a>
+<span class="sourceLineNo">2535</span> Future<Void>
removeReplicationPeerAsync(String peerId) throws IOException;<a
name="line.2535"></a>
+<span class="sourceLineNo">2536</span><a name="line.2536"></a>
+<span class="sourceLineNo">2537</span> /**<a name="line.2537"></a>
+<span class="sourceLineNo">2538</span> * Restart the replication stream to
the specified peer.<a name="line.2538"></a>
+<span class="sourceLineNo">2539</span> * @param peerId a short name that
identifies the peer<a name="line.2539"></a>
+<span class="sourceLineNo">2540</span> * @throws IOException if a remote or
network exception occurs<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span> */<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span> void enableReplicationPeer(String
peerId) throws IOException;<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span><a name="line.2543"></a>
+<span class="sourceLineNo">2544</span> /**<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span> * Enable a replication peer but does
not block and wait for it.<a name="line.2545"></a>
+<span class="sourceLineNo">2546</span> * <p><a name="line.2546"></a>
+<span class="sourceLineNo">2547</span> * You can use Future.get(long,
TimeUnit) to wait on the operation to complete. It may throw<a
name="line.2547"></a>
+<span class="sourceLineNo">2548</span> * ExecutionException if there was an
error while executing the operation or TimeoutException in<a
name="line.2548"></a>
+<span class="sourceLineNo">2549</span> * case the wait timeout was not long
enough to allow the operation to complete.<a name="line.2549"></a>
+<span class="sourceLineNo">2550</span> * @param peerId a short name that
identifies the peer<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span> * @return the result of the async
operation<a name="line.2551"></a>
+<span class="sourceLineNo">2552</span> * @throws IOException IOException if
a remote or network exception occurs<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span> */<a name="line.2553"></a>
+<span class="sourceLineNo">2554</span> Future<Void>
enableReplicationPeerAsync(String peerId) throws IOException;<a
name="line.2554"></a>
+<span class="sourceLineNo">2555</span><a name="line.2555"></a>
+<span class="sourceLineNo">2556</span> /**<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span> * Stop the replication stream to the
specified peer.<a name="line.2557"></a>
+<span class="sourceLineNo">2558</span> * @param peerId a short name that
identifies the peer<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span> * @throws IOException if a remote or
network exception occurs<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span> */<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span> void disableReplicationPeer(String
peerId) throws IOException;<a name="line.2561"></a>
+<span class="sourceLineNo">2562</span><a name="line.2562"></a>
+<span class="sourceLineNo">2563</span> /**<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span> * Disable a replication peer but does
not block and wait for it.<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span> * <p><a name="line.2565"></a>
+<span class="sourceLineNo">2566</span> * You can use Future.get(long,
TimeUnit) to wait on the operation to complete. It may throw<a
name="line.2566"></a>
+<span class="sourceLineNo">2567</span> * ExecutionException if there was an
error while executing the operation or TimeoutException in<a
name="line.2567"></a>
+<span class="sourceLineNo">2568</span> * case the wait timeout was not long
enough to allow the operation to complete.<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span> * @param peerId a short name that
identifies the peer<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span> * @return the result of the async
operation<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span> * @throws IOException IOException if
a remote or network exception occurs<a name="line.2571"></a>
+<span class="sourceLineNo">2572</span> */<a name="line.2572"></a>
+<span class="sourceLineNo">2573</span> Future<Void>
disableReplicationPeerAsync(String peerId) throws IOException;<a
name="line.2573"></a>
+<span class="sourceLineNo">2574</span><a name="line.2574"></a>
+<span class="sourceLineNo">2575</span> /**<a name="line.2575"></a>
+<span class="sourceLineNo">2576</span> * Returns the configured
ReplicationPeerConfig for the specified peer.<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span> * @param peerId a short name that
identifies the peer<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span> * @return ReplicationPeerConfig for
the peer<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span> * @throws IOException if a remote or
network exception occurs<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span> */<a name="line.2580"></a>
+<span class="sourceLineNo">2581</span> ReplicationPeerConfig
getReplicationPeerConfig(String peerId) throws IOException;<a
name="line.2581"></a>
+<span class="sourceLineNo">2582</span><a name="line.2582"></a>
+<span class="sourceLineNo">2583</span> /**<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span> * Update the peerConfig for the
specified peer.<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span> * @param peerId a short name that
identifies the peer<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span> * @param peerConfig new config for
the replication peer<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span> * @throws IOException if a remote or
network exception occurs<a name="line.2587"></a>
+<span class="sourceLineNo">2588</span> */<a name="line.2588"></a>
+<span class="sourceLineNo">2589</span> void
updateReplicationPeerConfig(String peerId,<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span> ReplicationPeerConfig peerConfig)
throws IOException;<a name="line.2590"></a>
+<span class="sourceLineNo">2591</span><a name="line.2591"></a>
+<span class="sourceLineNo">2592</span> /**<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span> * Update the peerConfig for the
specified peer but does not block and wait for it.<a name="line.2593"></a>
+<span class="sourceLineNo">2594</span> * <p><a name="line.2594"></a>
+<span class="sourceLineNo">2595</span> * You can use Future.get(long,
TimeUnit) to wait on the operation to complete. It may throw<a
name="line.2595"></a>
+<span class="sourceLineNo">2596</span> * ExecutionException if there was an
error while executing the operation or TimeoutException in<a
name="line.2596"></a>
+<span class="sourceLineNo">2597</span> * case the wait timeout was not long
enough to allow the operation to complete.<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span> * @param peerId a short name that
identifies the peer<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span> * @param peerConfig new config for
the replication peer<a name="line.2599"></a>
+<span class="sourceLineNo">2600</span> * @return the result of the async
operation<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span> * @throws IOException IOException if
a remote or network exception occurs<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span> */<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span> Future<Void>
updateReplicationPeerConfigAsync(String peerId, ReplicationPeerConfig
peerConfig)<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span> throws IOException;<a
name="line.2604"></a>
+<span class="sourceLineNo">2605</span><a name="line.2605"></a>
+<span class="sourceLineNo">2606</span> /**<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span> * Append the replicable table column
family config from the specified peer.<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span> * @param id a short that identifies
the cluster<a name="line.2608"></a>
+<span class="sourceLineNo">2609</span> * @param tableCfs A map from
tableName to column family names<a name="line.2609"></a>
+<span class="sourceLineNo">2610</span> * @throws ReplicationException if
tableCfs has conflict with existing config<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span> * @throws IOException if a remote or
network exception occurs<a name="line.2611"></a>
+<span class="sourceLineNo">2612</span> */<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span> void
appendReplicationPeerTableCFs(String id,<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span> Map<TableName,
List<String>> tableCfs)<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span> throws ReplicationException,
IOException;<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span><a name="line.2616"></a>
+<span class="sourceLineNo">2617</span> /**<a name="line.2617"></a>
+<span class="sourceLineNo">2618</span> * Remove some table-cfs from config
of the specified peer.<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span> * @param id a short name that
identifies the cluster<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span> * @param tableCfs A map from
tableName to column family names<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span> * @throws ReplicationException if
tableCfs has conflict with existing config<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span> * @throws IOException if a remote or
network exception occurs<a name="line.2622"></a>
+<span class="sourceLineNo">2623</span> */<a name="line.2623"></a>
+<span class="sourceLineNo">2624</span> void
removeReplicationPeerTableCFs(String id,<a name="line.2624"></a>
+<span class="sourceLineNo">2625</span> Map<TableName,
List<String>> tableCfs)<a name="line.2625"></a>
+<span class="sourceLineNo">2626</span> throws ReplicationException,
IOException;<a name="line.2626"></a>
+<span class="sourceLineNo">2627</span><a name="line.2627"></a>
+<span class="sourceLineNo">2628</span> /**<a name="line.2628"></a>
+<span class="sourceLineNo">2629</span> * Return a list of replication
peers.<a name="line.2629"></a>
+<span class="sourceLineNo">2630</span> * @return a list of replication peers
description<a name="line.2630"></a>
+<span class="sourceLineNo">2631</span> * @throws IOException if a remote or
network exception occurs<a name="line.2631"></a>
+<span class="sourceLineNo">2632</span> */<a name="line.2632"></a>
+<span class="sourceLineNo">2633</span> List<ReplicationPeerDescription>
listReplicationPeers() throws IOException;<a name="line.2633"></a>
+<span class="sourceLineNo">2634</span><a name="line.2634"></a>
+<span class="sourceLineNo">2635</span> /**<a name="line.2635"></a>
+<span class="sourceLineNo">2636</span> * Return a list of replication
peers.<a name="line.2636"></a>
+<span class="sourceLineNo">2637</span> * @param pattern The compiled regular
expression to match peer id<a name="line.2637"></a>
+<span class="sourceLineNo">2638</span> * @return a list of replication peers
description<a name="line.2638"></a>
+<span class="sourceLineNo">2639</span> * @throws IOException if a remote or
network exception occurs<a name="line.2639"></a>
+<span class="sourceLineNo">2640</span> */<a name="line.2640"></a>
+<span class="sourceLineNo">2641</span> List<ReplicationPeerDescription>
listReplicationPeers(Pattern pattern) throws IOException;<a
name="line.2641"></a>
+<span class="sourceLineNo">2642</span><a name="line.2642"></a>
+<span class="sourceLineNo">2643</span> /**<a name="line.2643"></a>
+<span class="sourceLineNo">2644</span> * Mark region server(s) as
decommissioned to prevent additional regions from getting<a
name="line.2644"></a>
+<span class="sourceLineNo">2645</span> * assigned to them. Optionally unload
the regions on the servers. If there are multiple servers<a
name="line.2645"></a>
+<span class="sourceLineNo">2646</span> * to be decommissioned,
decommissioning them at the same time can prevent wasteful region<a
name="line.2646"></a>
+<span class="sourceLineNo">2647</span> * movements. Region unloading is
asynchronous.<a name="line.2647"></a>
+<span class="sourceLineNo">2648</span> * @param servers The list of servers
to decommission.<a name="line.2648"></a>
+<span class="sourceLineNo">2649</span> * @param offload True to offload the
regions from the decommissioned servers<a name="line.2649"></a>
+<span class="sourceLineNo">2650</span> */<a name="line.2650"></a>
+<span class="sourceLineNo">2651</span> void
decommissionRegionServers(List<ServerName> servers, boolean offload)
throws IOException;<a name="line.2651"></a>
+<span class="sourceLineNo">2652</span><a name="line.2652"></a>
+<span class="sourceLineNo">2653</span> /**<a name="line.2653"></a>
+<span class="sourceLineNo">2654</span> * List region servers marked as
decommissioned, which can not be assigned regions.<a name="line.2654"></a>
+<span class="sourceLineNo">2655</span> * @return List of decommissioned
region servers.<a name="line.2655"></a>
+<span class="sourceLineNo">2656</span> */<a name="line.2656"></a>
+<span class="sourceLineNo">2657</span> List<ServerName>
listDecommissionedRegionServers() throws IOException;<a name="line.2657"></a>
+<span class="sourceLineNo">2658</span><a name="line.2658"></a>
+<span class="sourceLineNo">2659</span> /**<a name="line.2659"></a>
+<span class="sourceLineNo">2660</span> * Remove decommission marker from a
region server to allow regions assignments.<a name="line.2660"></a>
+<span class="sourceLineNo">2661</span> * Load regions onto the server if a
list of regions is given. Region loading is<a name="line.2661"></a>
+<span class="sourceLineNo">2662</span> * asynchronous.<a
name="line.2662"></a>
+<span class="sourceLineNo">2663</span> * @param server The server to
recommission.<a name="line.2663"></a>
+<span class="sourceLineNo">2664</span> * @param encodedRegionNames Regions
to load onto the server.<a name="line.2664"></a>
+<span class="sourceLineNo">2665</span> */<a name="line.2665"></a>
+<span class="sourceLineNo">2666</span> void
recommissionRegionServer(ServerName server, List<byte[]>
encodedRegionNames)<a name="line.2666"></a>
+<span class="sourceLineNo">2667</span> throws IOException;<a
name="line.2667"></a>
+<span class="sourceLineNo">2668</span><a name="line.2668"></a>
+<span class="sourceLineNo">2669</span> /**<a name="line.2669"></a>
+<span class="sourceLineNo">2670</span> * Find all table and column families
that are replicated from this cluster<a name="line.2670"></a>
+<span class="sourceLineNo">2671</span> * @return the replicated table-cfs
list of this cluster.<a name="line.2671"></a>
+<span class="sourceLineNo">2672</span> */<a name="line.2672"></a>
+<span class="sourceLineNo">2673</span> List<TableCFs>
listReplicatedTableCFs() throws IOException;<a name="line.2673"></a>
+<span class="sourceLineNo">2674</span><a name="line.2674"></a>
+<span class="sourceLineNo">2675</span> /**<a name="line.2675"></a>
+<span class="sourceLineNo">2676</span> * Enable a table's replication
switch.<a name="line.2676"></a>
+<span class="sourceLineNo">2677</span> * @param tableName name of the
table<a name="line.2677"></a>
+<span class="sourceLineNo">2678</span> * @throws IOException if a remote or
network exception occurs<a name="line.2678"></a>
+<span class="sourceLineNo">2679</span> */<a name="line.2679"></a>
+<span class="sourceLineNo">2680</span> void enableTableReplication(TableName
tableName) throws IOException;<a name="line.2680"></a>
+<span class="sourceLineNo">2681</span><a name="line.2681"></a>
+<span class="sourceLineNo">2682</span> /**<a name="line.2682"></a>
+<span class="sourceLineNo">2683</span> * Disable a table's replication
switch.<a name="line.2683"></a>
+<span class="sourceLineNo">2684</span> * @param tableName name of the
table<a name="line.2684"></a>
+<span class="sourceLineNo">2685</span> * @throws IOException if a remote or
network exception occurs<a name="line.2685"></a>
+<span class="sourceLineNo">2686</span> */<a name="line.2686"></a>
+<span class="sourceLineNo">2687</span> void disableTableReplication(TableName
tableName) throws IOException;<a name="line.2687"></a>
+<span class="sourceLineNo">2688</span><a name="line.2688"></a>
+<span class="sourceLineNo">2689</span> /**<a name="line.2689"></a>
+<span class="sourceLineNo">2690</span> * Clear compacting queues on a
regionserver.<a name="line.2690"></a>
+<span class="sourceLineNo">2691</span> * @param serverName the region server
name<a name="line.2691"></a>
+<span class="sourceLineNo">2692</span> * @param queues the set of queue
name<a name="line.2692"></a>
+<span class="sourceLineNo">2693</span> * @throws IOException if a remote or
network exception occurs<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span> * @throws InterruptedException<a
name="line.2694"></a>
+<span class="sourceLineNo">2695</span> */<a name="line.2695"></a>
+<span class="sourceLineNo">2696</span> void clearCompactionQueues(ServerName
serverName, Set<String> queues)<a name="line.2696"></a>
+<span class="sourceLineNo">2697</span> throws IOException,
InterruptedException;<a name="line.2697"></a>
+<span class="sourceLineNo">2698</span><a name="line.2698"></a>
+<span class="sourceLineNo">2699</span> /**<a name="line.2699"></a>
+<span class="sourceLineNo">2700</span> * List dead region servers.<a
name="line.2700"></a>
+<span class="sourceLineNo">2701</span> * @return List of dead region
servers.<a name="line.2701"></a>
+<span class="sourceLineNo">2702</span> */<a name="line.2702"></a>
+<span class="sourceLineNo">2703</span> default List<ServerName>
listDeadServers() throws IOException {<a name="line.2703"></a>
+<span class="sourceLineNo">2704</span> return
getClusterMetrics(EnumSet.of(Option.DEAD_SERVERS)).getDeadServerNames();<a
name="line.2704"></a>
+<span class="sourceLineNo">2705</span> }<a name="line.2705"></a>
+<span class="sourceLineNo">2706</span><a name="line.2706"></a>
+<span class="sourceLineNo">2707</span> /**<a name="line.2707"></a>
+<span class="sourceLineNo">2708</span> * Clear dead region servers from
master.<a name="line.2708"></a>
+<span class="sourceLineNo">2709</span> * @param servers list of dead region
servers.<a name="line.2709"></a>
+<span class="sourceLineNo">2710</span> * @throws IOException if a remote or
network exception occurs<a name="line.2710"></a>
+<span class="sourceLineNo">2711</span> * @return List of servers that are
not cleared<a name="line.2711"></a>
+<span class="sourceLineNo">2712</span> */<a name="line.2712"></a>
+<span class="sourceLineNo">2713</span> List<ServerName>
clearDeadServers(final List<ServerName> servers) throws IOException;<a
name="line.2713"></a>
+<span class="sourceLineNo">2714</span>}<a name="line.2714"></a>