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>   * &lt;p&gt;<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&lt;Void&gt; 
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>   * &lt;p&gt;<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&lt;Void&gt; 
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&lt;TableName, 
List&lt;String&gt;&gt; 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&lt;TableName, 
List&lt;String&gt;&gt; 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&lt;ReplicationPeerDescription&gt; 
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&lt;ReplicationPeerDescription&gt; 
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&lt;ServerName&gt; 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&lt;ServerName&gt; 
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&lt;byte[]&gt; 
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&lt;TableCFs&gt; 
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&lt;String&gt; 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&lt;ServerName&gt; 
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&lt;ServerName&gt; 
clearDeadServers(final List&lt;ServerName&gt; 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>   * &lt;p&gt;<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&lt;Void&gt; 
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>   * &lt;p&gt;<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&lt;Void&gt; 
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>   * &lt;p&gt;<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&lt;Void&gt; 
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>   * &lt;p&gt;<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&lt;Void&gt; 
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&lt;TableName, 
List&lt;String&gt;&gt; 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&lt;TableName, 
List&lt;String&gt;&gt; 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&lt;ReplicationPeerDescription&gt; 
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&lt;ReplicationPeerDescription&gt; 
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&lt;ServerName&gt; 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&lt;ServerName&gt; 
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&lt;byte[]&gt; 
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&lt;TableCFs&gt; 
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&lt;String&gt; 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&lt;ServerName&gt; 
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&lt;ServerName&gt; 
clearDeadServers(final List&lt;ServerName&gt; servers) throws IOException;<a 
name="line.2713"></a>
+<span class="sourceLineNo">2714</span>}<a name="line.2714"></a>
 
 
 

Reply via email to