You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2017/12/01 15:18:16 UTC

[01/50] hbase-site git commit: Published site at .

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 1c7795626 -> a5c4dca3b


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html
index d1eeec2..88ff92b 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html
@@ -118,44 +118,50 @@
 <span class="sourceLineNo">110</span>    verify();<a name="line.110"></a>
 <span class="sourceLineNo">111</span>  }<a name="line.111"></a>
 <span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public void verify() throws IOException {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    Map&lt;String, RSGroupInfo&gt; groupMap = Maps.newHashMap();<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    Set&lt;RSGroupInfo&gt; zList = Sets.newHashSet();<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>    for (Result result : table.getScanner(new Scan())) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      RSGroupProtos.RSGroupInfo proto =<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.119"></a>
-<span class="sourceLineNo">120</span>              result.getValue(<a name="line.120"></a>
-<span class="sourceLineNo">121</span>                  RSGroupInfoManager.META_FAMILY_BYTES,<a name="line.121"></a>
-<span class="sourceLineNo">122</span>                  RSGroupInfoManager.META_QUALIFIER_BYTES));<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      groupMap.put(proto.getName(), RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    Assert.assertEquals(Sets.newHashSet(groupMap.values()),<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        Sets.newHashSet(wrapped.listRSGroups()));<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    try {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      String groupBasePath = ZNodePaths.joinZNode(zkw.znodePaths.baseZNode, "rsgroup");<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      for(String znode: ZKUtil.listChildrenNoWatch(zkw, groupBasePath)) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        byte[] data = ZKUtil.getData(zkw, ZNodePaths.joinZNode(groupBasePath, znode));<a name="line.130"></a>
-<span class="sourceLineNo">131</span>        if(data.length &gt; 0) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>          ProtobufUtil.expectPBMagicPrefix(data);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>          ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.133"></a>
-<span class="sourceLineNo">134</span>              data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>          zList.add(RSGroupProtobufUtil.toGroupInfo(RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      }<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      Assert.assertEquals(zList.size(), groupMap.size());<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      for(RSGroupInfo RSGroupInfo : zList) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        Assert.assertTrue(groupMap.get(RSGroupInfo.getName()).equals(RSGroupInfo));<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    } catch (KeeperException e) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      throw new IOException("ZK verification failed", e);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    } catch (DeserializationException e) {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>      throw new IOException("ZK verification failed", e);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    } catch (InterruptedException e) {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      throw new IOException("ZK verification failed", e);<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    }<a name="line.148"></a>
-<span class="sourceLineNo">149</span>  }<a name="line.149"></a>
-<span class="sourceLineNo">150</span>}<a name="line.150"></a>
+<span class="sourceLineNo">113</span>  @Override<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  public void removeServers(Set&lt;Address&gt; servers) throws IOException {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    wrapped.removeServers(servers);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    verify();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  public void verify() throws IOException {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    Map&lt;String, RSGroupInfo&gt; groupMap = Maps.newHashMap();<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    Set&lt;RSGroupInfo&gt; zList = Sets.newHashSet();<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>    for (Result result : table.getScanner(new Scan())) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      RSGroupProtos.RSGroupInfo proto =<a name="line.124"></a>
+<span class="sourceLineNo">125</span>          RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.125"></a>
+<span class="sourceLineNo">126</span>              result.getValue(<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                  RSGroupInfoManager.META_FAMILY_BYTES,<a name="line.127"></a>
+<span class="sourceLineNo">128</span>                  RSGroupInfoManager.META_QUALIFIER_BYTES));<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      groupMap.put(proto.getName(), RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    Assert.assertEquals(Sets.newHashSet(groupMap.values()),<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        Sets.newHashSet(wrapped.listRSGroups()));<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    try {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      String groupBasePath = ZNodePaths.joinZNode(zkw.znodePaths.baseZNode, "rsgroup");<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      for(String znode: ZKUtil.listChildrenNoWatch(zkw, groupBasePath)) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        byte[] data = ZKUtil.getData(zkw, ZNodePaths.joinZNode(groupBasePath, znode));<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        if(data.length &gt; 0) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>          ProtobufUtil.expectPBMagicPrefix(data);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>          ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.139"></a>
+<span class="sourceLineNo">140</span>              data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          zList.add(RSGroupProtobufUtil.toGroupInfo(RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        }<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      }<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      Assert.assertEquals(zList.size(), groupMap.size());<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      for(RSGroupInfo RSGroupInfo : zList) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        Assert.assertTrue(groupMap.get(RSGroupInfo.getName()).equals(RSGroupInfo));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      }<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    } catch (KeeperException e) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      throw new IOException("ZK verification failed", e);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    } catch (DeserializationException e) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      throw new IOException("ZK verification failed", e);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    } catch (InterruptedException e) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      throw new IOException("ZK verification failed", e);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>}<a name="line.156"></a>
 
 
 


[09/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.FailingSplitMasterObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.FailingSplitMasterObserver.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.FailingSplitMasterObserver.html
index aa20a50..a16da58 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.FailingSplitMasterObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.FailingSplitMasterObserver.html
@@ -230,7 +230,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus
 , preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, 
 preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 4a00cfd..4680956 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -631,9 +631,9 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
index 7fe188d..b9afcb8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.html
@@ -197,7 +197,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.rsgroup.<a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#addGroup-java.lang.String-int-">addGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteGroups--">deleteGroups</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteNamespaceIfNecessary--">deleteNamespaceIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteTableIfNecessary--">deleteTableIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getNumServers--">getNumServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableRegionMap--">getTableRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableServerRegionMap--">getTableServerRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#removeGroup-java.lang.String-">remo
 veGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testBogusArgs--">testBogusArgs</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateAndDrop--">testCreateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateMultiRegion--">testCreateMultiRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testDisabledTableMove--">testDisabledTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testFailRemoveGroup--">testFailRemoveGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testGroupBalance--">testGroupBalance</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testKillRS--">testKillRS</a>, <a href="../../../../../org/apache/h
 adoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServers--">testMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersAndTables--">testMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRegionMove--">testRegionMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testValidGroupNames--">testValidGroupNames</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#addGroup-java.lang.String-int-">addGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteGroups--">deleteGroups</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteNamespaceIfNecessary--">deleteNamespaceIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteTableIfNecessary--">deleteTableIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getNumServers--">getNumServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableRegionMap--">getTableRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableServerRegionMap--">getTableServerRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#removeGroup-java.lang.String-">remo
 veGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testBogusArgs--">testBogusArgs</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testClearDeadServers--">testClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateAndDrop--">testCreateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateMultiRegion--">testCreateMultiRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testDisabledTableMove--">testDisabledTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testFailRemoveGroup--">testFailRemoveGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testGroupBalance--">testGroupBalance</a>, <a href="../../.
 ./../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testKillRS--">testKillRS</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServers--">testMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersAndTables--">testMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRegionMove--">testRegionMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a>, <a hr
 ef="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testValidGroupNames--">testValidGroupNames</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
index 5ea89bd..e22f586 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
@@ -239,7 +239,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.rsgroup.<a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsBase</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#addGroup-java.lang.String-int-">addGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteGroups--">deleteGroups</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteNamespaceIfNecessary--">deleteNamespaceIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteTableIfNecessary--">deleteTableIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getNumServers--">getNumServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableRegionMap--">getTableRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableServerRegionMap--">getTableServerRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#removeGroup-java.lang.String-">remo
 veGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testBogusArgs--">testBogusArgs</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateAndDrop--">testCreateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateMultiRegion--">testCreateMultiRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testDisabledTableMove--">testDisabledTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testFailRemoveGroup--">testFailRemoveGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testGroupBalance--">testGroupBalance</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testKillRS--">testKillRS</a>, <a href="../../../../../org/apache/h
 adoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServers--">testMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersAndTables--">testMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRegionMove--">testRegionMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testValidGroupNames--">testValidGroupNames</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#addGroup-java.lang.String-int-">addGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteGroups--">deleteGroups</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteNamespaceIfNecessary--">deleteNamespaceIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#deleteTableIfNecessary--">deleteTableIfNecessary</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getNumServers--">getNumServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableRegionMap--">getTableRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#getTableServerRegionMap--">getTableServerRegionMap</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#removeGroup-java.lang.String-">remo
 veGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testBogusArgs--">testBogusArgs</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testClearDeadServers--">testClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateAndDrop--">testCreateAndDrop</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateMultiRegion--">testCreateMultiRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testDisabledTableMove--">testDisabledTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testFailRemoveGroup--">testFailRemoveGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testGroupBalance--">testGroupBalance</a>, <a href="../../.
 ./../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testKillRS--">testKillRS</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServers--">testMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersAndTables--">testMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRegionMove--">testRegionMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a>, <a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a>, <a hr
 ef="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testValidGroupNames--">testValidGroupNames</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
index c3e7a56..f8becfa 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.66">TestRSGroupsBase</a>
+<pre>public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.69">TestRSGroupsBase</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -260,54 +260,62 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </tr>
 <tr id="i11" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateAndDrop--">testCreateAndDrop</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testClearDeadServers--">testClearDeadServers</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateMultiRegion--">testCreateMultiRegion</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateAndDrop--">testCreateAndDrop</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i13" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testDisabledTableMove--">testDisabledTableMove</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testCreateMultiRegion--">testCreateMultiRegion</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i14" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testFailRemoveGroup--">testFailRemoveGroup</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testDisabledTableMove--">testDisabledTableMove</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i15" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testGroupBalance--">testGroupBalance</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testFailRemoveGroup--">testFailRemoveGroup</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i16" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testKillRS--">testKillRS</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testGroupBalance--">testGroupBalance</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServers--">testMoveServers</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testKillRS--">testKillRS</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersAndTables--">testMoveServersAndTables</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServers--">testMoveServers</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i19" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMoveServersAndTables--">testMoveServersAndTables</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i20" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRegionMove--">testRegionMove</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testMultiTableMove--">testMultiTableMove</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i21" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRegionMove--">testRegionMove</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i22" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServers</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i23" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testSimpleRegionServerMove--">testSimpleRegionServerMove</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testTableMoveTruncateAndDrop--">testTableMoveTruncateAndDrop</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testValidGroupNames--">testValidGroupNames</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -338,7 +346,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>protected static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.67">LOG</a></pre>
+<pre>protected static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.70">LOG</a></pre>
 </li>
 </ul>
 <a name="name">
@@ -347,7 +355,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>name</h4>
-<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.69">name</a></pre>
+<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.72">name</a></pre>
 </li>
 </ul>
 <a name="groupPrefix">
@@ -356,7 +364,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>groupPrefix</h4>
-<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.72">groupPrefix</a></pre>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.75">groupPrefix</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.TestRSGroupsBase.groupPrefix">Constant Field Values</a></dd>
@@ -369,7 +377,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>tablePrefix</h4>
-<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.73">tablePrefix</a></pre>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.76">tablePrefix</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.TestRSGroupsBase.tablePrefix">Constant Field Values</a></dd>
@@ -382,7 +390,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rand</h4>
-<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/security/SecureRandom.html?is-external=true" title="class or interface in java.security">SecureRandom</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.74">rand</a></pre>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/security/SecureRandom.html?is-external=true" title="class or interface in java.security">SecureRandom</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.77">rand</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -391,7 +399,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.77">TEST_UTIL</a></pre>
+<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.80">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="admin">
@@ -400,7 +408,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>admin</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.78">admin</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.81">admin</a></pre>
 </li>
 </ul>
 <a name="cluster">
@@ -409,7 +417,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>cluster</h4>
-<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html" title="class in org.apache.hadoop.hbase">HBaseCluster</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.79">cluster</a></pre>
+<pre>protected static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseCluster.html" title="class in org.apache.hadoop.hbase">HBaseCluster</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.82">cluster</a></pre>
 </li>
 </ul>
 <a name="rsGroupAdmin">
@@ -418,7 +426,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>rsGroupAdmin</h4>
-<pre>protected static&nbsp;org.apache.hadoop.hbase.rsgroup.RSGroupAdmin <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.80">rsGroupAdmin</a></pre>
+<pre>protected static&nbsp;org.apache.hadoop.hbase.rsgroup.RSGroupAdmin <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.83">rsGroupAdmin</a></pre>
 </li>
 </ul>
 <a name="WAIT_TIMEOUT">
@@ -427,7 +435,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>WAIT_TIMEOUT</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.82">WAIT_TIMEOUT</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.85">WAIT_TIMEOUT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.TestRSGroupsBase.WAIT_TIMEOUT">Constant Field Values</a></dd>
@@ -440,7 +448,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_SLAVES_BASE</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.83">NUM_SLAVES_BASE</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.86">NUM_SLAVES_BASE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.rsgroup.TestRSGroupsBase.NUM_SLAVES_BASE">Constant Field Values</a></dd>
@@ -453,7 +461,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>tableName</h4>
-<pre>org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.86">tableName</a></pre>
+<pre>org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.89">tableName</a></pre>
 </li>
 </ul>
 </li>
@@ -470,7 +478,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestRSGroupsBase</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.66">TestRSGroupsBase</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.69">TestRSGroupsBase</a>()</pre>
 </li>
 </ul>
 </li>
@@ -487,7 +495,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.88">setup</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.91">setup</a>()</pre>
 </li>
 </ul>
 <a name="addGroup-java.lang.String-int-">
@@ -496,7 +504,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>addGroup</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.rsgroup.RSGroupInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.93">addGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName,
+<pre>protected&nbsp;org.apache.hadoop.hbase.rsgroup.RSGroupInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.96">addGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName,
                                                                int&nbsp;serverCount)
                                                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -513,7 +521,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>removeGroup</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.113">removeGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.116">removeGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -527,7 +535,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteTableIfNecessary</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.120">deleteTableIfNecessary</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.123">deleteTableIfNecessary</a>()
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -541,7 +549,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteNamespaceIfNecessary</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.126">deleteNamespaceIfNecessary</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.129">deleteNamespaceIfNecessary</a>()
                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -555,7 +563,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteGroups</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.134">deleteGroups</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.137">deleteGroups</a>()
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -569,7 +577,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableRegionMap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.TableName,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.146">getTableRegionMap</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.TableName,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.149">getTableRegionMap</a>()
                                                                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -583,7 +591,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableServerRegionMap</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.TableName,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.161">getTableServerRegionMap</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.TableName,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.164">getTableServerRegionMap</a>()
                                                                                                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -597,7 +605,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBogusArgs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.188">testBogusArgs</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.191">testBogusArgs</a>()
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -611,7 +619,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testCreateMultiRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.225">testCreateMultiRegion</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.228">testCreateMultiRegion</a>()
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -625,7 +633,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testCreateAndDrop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.233">testCreateAndDrop</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.236">testCreateAndDrop</a>()
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -639,7 +647,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSimpleRegionServerMove</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.247">testSimpleRegionServerMove</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.250">testSimpleRegionServerMove</a>()
                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -655,7 +663,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumServers</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.267">getNumServers</a>()
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.270">getNumServers</a>()
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -669,7 +677,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testMoveServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.281">testMoveServers</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.284">testMoveServers</a>()
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -683,7 +691,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testTableMoveTruncateAndDrop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.334">testTableMoveTruncateAndDrop</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.337">testTableMoveTruncateAndDrop</a>()
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -697,7 +705,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testGroupBalance</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.390">testGroupBalance</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.393">testGroupBalance</a>()
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -711,7 +719,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRegionMove</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.468">testRegionMove</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.471">testRegionMove</a>()
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -725,7 +733,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testFailRemoveGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.539">testFailRemoveGroup</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.542">testFailRemoveGroup</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -741,7 +749,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testKillRS</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.572">testKillRS</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.575">testKillRS</a>()
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -755,7 +763,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testValidGroupNames</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.641">testValidGroupNames</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.644">testValidGroupNames</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -769,7 +777,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getGroupName</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.659">getGroupName</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;baseName)</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.662">getGroupName</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;baseName)</pre>
 </li>
 </ul>
 <a name="testMultiTableMove--">
@@ -778,7 +786,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testMultiTableMove</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.664">testMultiTableMove</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.667">testMultiTableMove</a>()
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -792,7 +800,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testDisabledTableMove</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.716">testDisabledTableMove</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.719">testDisabledTableMove</a>()
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -803,10 +811,10 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <a name="testMoveServersAndTables--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>testMoveServersAndTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.749">testMoveServersAndTables</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.752">testMoveServersAndTables</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -814,6 +822,34 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="testClearDeadServers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testClearDeadServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.871">testClearDeadServers</a>()
+                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testRemoveServers--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testRemoveServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#line.911">testRemoveServers</a>()
+                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html
index 9d7d93a..ffe0246 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -226,6 +226,10 @@ implements org.apache.hadoop.hbase.rsgroup.RSGroupAdmin</pre>
 </tr>
 <tr id="i10" class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.hbase.net.Address&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html#verify--">verify</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -472,13 +476,29 @@ implements org.apache.hadoop.hbase.rsgroup.RSGroupAdmin</pre>
 </dl>
 </li>
 </ul>
+<a name="removeServers-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html#line.114">removeServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.hbase.net.Address&gt;&nbsp;servers)
+                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>removeServers</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.rsgroup.RSGroupAdmin</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="verify--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>verify</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html#line.113">verify</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html#line.119">verify</a>()
             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/security/access/SecureTestUtil.MasterSyncObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/security/access/SecureTestUtil.MasterSyncObserver.html b/testdevapidocs/org/apache/hadoop/hbase/security/access/SecureTestUtil.MasterSyncObserver.html
index 4f21d09..86b365e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/security/access/SecureTestUtil.MasterSyncObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/security/access/SecureTestUtil.MasterSyncObserver.html
@@ -235,7 +235,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServe
 rsAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preG
 etReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServe
 rsAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, pre
 GetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController2.MyAccessController.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController2.MyAccessController.html b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController2.MyAccessController.html
index cd6378e..daa20cc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController2.MyAccessController.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController2.MyAccessController.html
@@ -196,7 +196,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.security.access.AccessController</h3>
-<code>checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, initialize, isAuthorizationSupported, isCellAuthorizationSupported, permissionGranted, permissionGranted, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postSetSplitOrMergeEnabled, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preChec
 kAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExists, preFlush, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest
 , preScannerClose, preScannerNext, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preStopMaster, preStopRegionServer, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireNamespacePermission, requireNamespacePermission, revoke, start, stop, updateACL</code></li>
+<code>checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, initialize, isAuthorizationSupported, isCellAuthorizationSupported, permissionGranted, permissionGranted, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postSetSplitOrMergeEnabled, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preChec
 kAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExists, preFlush, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRo
 llWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preStopMaster, preStopRegionServer, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireNamespacePermission, requireNamespacePermission, revoke, start, stop, updateACL</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -210,7 +210,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRS
 Group, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyTableAction, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
+<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRS
 Group, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyTableAction, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">


[17/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
index 775301c..0c071a7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
@@ -317,602 +317,628 @@
 <span class="sourceLineNo">309</span>    flushConfig(newGroupMap);<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.315"></a>
-<span class="sourceLineNo">316</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    return rsGroupInfoList;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    //Overwrite any info stored by table, this takes precedence<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    try {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>          byte[] data = ZKUtil.getData(watcher, ZNodePaths.joinZNode(groupBasePath, znode));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          if(data.length &gt; 0) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.332"></a>
-<span class="sourceLineNo">333</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.334"></a>
-<span class="sourceLineNo">335</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.335"></a>
-<span class="sourceLineNo">336</span>          }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    }<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    return RSGroupInfoList;<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  @Override<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  public void refresh() throws IOException {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    refresh(false);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  /**<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * Update zk cache. Called on startup of the manager.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   */<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    // if online read from GROUP table<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    if (forceOnline || isOnline()) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      LOG.debug("Refreshing in Online mode.");<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      if (rsGroupTable == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    } else {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>    // refresh default group, prune<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public synchronized void removeServers(Set&lt;Address&gt; servers) throws IOException {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    Map&lt;String, RSGroupInfo&gt; rsGroupInfos = new HashMap&lt;String, RSGroupInfo&gt;();<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    for (Address el: servers) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      RSGroupInfo rsGroupInfo = getRSGroupOfServer(el);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      if (rsGroupInfo != null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        RSGroupInfo newRsGroupInfo = rsGroupInfos.get(rsGroupInfo.getName());<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        if (newRsGroupInfo == null) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          rsGroupInfo.removeServer(el);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          rsGroupInfos.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        } else {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          newRsGroupInfo.removeServer(el);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          rsGroupInfos.put(newRsGroupInfo.getName(), newRsGroupInfo);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      }else {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        LOG.warn("Server " + el + " does not belong to any rsgroup.");<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>    if (rsGroupInfos.size() &gt; 0) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      newGroupMap.putAll(rsGroupInfos);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      flushConfig(newGroupMap);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.341"></a>
+<span class="sourceLineNo">342</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    }<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    return rsGroupInfoList;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    //Overwrite any info stored by table, this takes precedence<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          byte[] data = ZKUtil.getData(watcher, ZNodePaths.joinZNode(groupBasePath, znode));<a name="line.355"></a>
+<span class="sourceLineNo">356</span>          if(data.length &gt; 0) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.361"></a>
+<span class="sourceLineNo">362</span>          }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    return RSGroupInfoList;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span>  @Override<a name="line.372"></a>
+<span class="sourceLineNo">373</span>  public void refresh() throws IOException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    refresh(false);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
 <span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    final List&lt;TableName&gt; specialTables;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    if(!masterServices.isInitialized()) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.379"></a>
-<span class="sourceLineNo">380</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    } else {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      specialTables =<a name="line.382"></a>
-<span class="sourceLineNo">383</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    for (TableName table : specialTables) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      orphanTables.add(table);<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    for (RSGroupInfo group: groupList) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        orphanTables.removeAll(group.getTables());<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    // from region group table or zk<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        orphanTables));<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    // populate the data<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    for (RSGroupInfo group : groupList) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      newGroupMap.put(group.getName(), group);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      for(TableName table: group.getTables()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>        newTableMap.put(table, group.getName());<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      }<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      throws IOException {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    // populate deletes<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    for(String groupName : prevRSGroups) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      if(!groupMap.containsKey(groupName)) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        mutations.add(d);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
+<span class="sourceLineNo">377</span>  /**<a name="line.377"></a>
+<span class="sourceLineNo">378</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.378"></a>
+<span class="sourceLineNo">379</span>   * Update zk cache. Called on startup of the manager.<a name="line.379"></a>
+<span class="sourceLineNo">380</span>   */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    // if online read from GROUP table<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    if (forceOnline || isOnline()) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      LOG.debug("Refreshing in Online mode.");<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      if (rsGroupTable == null) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    } else {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.393"></a>
+<span class="sourceLineNo">394</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>    // refresh default group, prune<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>    final List&lt;TableName&gt; specialTables;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    if(!masterServices.isInitialized()) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    } else {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      specialTables =<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    for (TableName table : specialTables) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      orphanTables.add(table);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    for (RSGroupInfo group: groupList) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        orphanTables.removeAll(group.getTables());<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    // from region group table or zk<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        orphanTables));<a name="line.424"></a>
 <span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    // populate puts<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      mutations.add(p);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      }<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span>    if(mutations.size() &gt; 0) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      multiMutate(mutations);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    return newTableMap;<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>  private synchronized void flushConfig()<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  throws IOException {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    flushConfig(this.rsGroupMap);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  throws IOException {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.450"></a>
+<span class="sourceLineNo">426</span>    // populate the data<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    for (RSGroupInfo group : groupList) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      newGroupMap.put(group.getName(), group);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      for(TableName table: group.getTables()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        newTableMap.put(table, group.getName());<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      throws IOException {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>    // populate deletes<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    for(String groupName : prevRSGroups) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      if(!groupMap.containsKey(groupName)) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        mutations.add(d);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
 <span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    // For offline mode persistence is still unavailable<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    // We're refreshing in-memory state but only for default servers<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    if (!isOnline()) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      if (!m.equals(newGroupMap) ||<a name="line.458"></a>
-<span class="sourceLineNo">459</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      }<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      rsGroupMap = newGroupMap;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      return;<a name="line.464"></a>
+<span class="sourceLineNo">452</span>    // populate puts<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      mutations.add(p);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      }<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>    if(mutations.size() &gt; 0) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      multiMutate(mutations);<a name="line.464"></a>
 <span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.467"></a>
+<span class="sourceLineNo">466</span>    return newTableMap;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>  }<a name="line.467"></a>
 <span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // Make changes visible after having been persisted to the source of truth<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      for(String groupName : prevRSGroups) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          String znode = ZNodePaths.joinZNode(groupBasePath, groupName);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        String znode = ZNodePaths.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        LOG.debug("Updating znode: "+znode);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    } catch (KeeperException e) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  /**<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * Make changes visible.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   * Caller must be synchronized on 'this'.<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   */<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // Make maps Immutable.<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  /**<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * Update cache of rsgroups.<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * Caller must be synchronized on 'this'.<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @param currentGroups Current list of Groups.<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
-<span class="sourceLineNo">521</span>  private void updateCacheOfRSGroups(final Set&lt;String&gt; currentGroups) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    this.prevRSGroups.clear();<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    this.prevRSGroups.addAll(currentGroups);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>  // Called by getDefaultServers. Presume it has lock in place.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  private List&lt;ServerName&gt; getOnlineRS() throws IOException {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    if (masterServices != null) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      return masterServices.getServerManager().getOnlineServersList();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    LOG.debug("Reading online RS from zookeeper");<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    List&lt;ServerName&gt; servers = new LinkedList&lt;&gt;();<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    try {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      for (String el: ZKUtil.listChildrenNoWatch(watcher, watcher.znodePaths.rsZNode)) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        servers.add(ServerName.parseServerName(el));<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      }<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    } catch (KeeperException e) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      throw new IOException("Failed to retrieve server list from zookeeper", e);<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    }<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    return servers;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>  // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  private SortedSet&lt;Address&gt; getDefaultServers() throws IOException {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    SortedSet&lt;Address&gt; defaultServers = Sets.newTreeSet();<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    for (ServerName serverName : getOnlineRS()) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      Address server =<a name="line.547"></a>
-<span class="sourceLineNo">548</span>          Address.fromParts(serverName.getHostname(), serverName.getPort());<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      boolean found = false;<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      for(RSGroupInfo rsgi: listRSGroups()) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        if(!RSGroupInfo.DEFAULT_GROUP.equals(rsgi.getName()) &amp;&amp;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>            rsgi.containsServer(server)) {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>          found = true;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>          break;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      }<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      if (!found) {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>        defaultServers.add(server);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>      }<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    return defaultServers;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // Called by ServerEventsListenerThread. Synchronize on this because redoing<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  // the rsGroupMap then writing it out.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  private synchronized void updateDefaultServers(SortedSet&lt;Address&gt; servers) throws IOException {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    RSGroupInfo info = rsGroupMap.get(RSGroupInfo.DEFAULT_GROUP);<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    RSGroupInfo newInfo = new RSGroupInfo(info.getName(), servers, info.getTables());<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    newGroupMap.put(newInfo.getName(), newInfo);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    flushConfig(newGroupMap);<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>  // Called by FailedOpenUpdaterThread<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  private void updateFailedAssignments() {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    // Kick all regions in FAILED_OPEN state<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    List&lt;RegionInfo&gt; stuckAssignments = Lists.newArrayList();<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    for (RegionStateNode state:<a name="line.578"></a>
-<span class="sourceLineNo">579</span>        masterServices.getAssignmentManager().getRegionStates().getRegionsInTransition()) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      if (state.isStuck()) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        stuckAssignments.add(state.getRegionInfo());<a name="line.581"></a>
+<span class="sourceLineNo">469</span>  private synchronized void flushConfig()<a name="line.469"></a>
+<span class="sourceLineNo">470</span>  throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    flushConfig(this.rsGroupMap);<a name="line.471"></a>
+<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  throws IOException {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>    // For offline mode persistence is still unavailable<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    // We're refreshing in-memory state but only for default servers<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    if (!isOnline()) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.482"></a>
+<span class="sourceLineNo">483</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      if (!m.equals(newGroupMap) ||<a name="line.484"></a>
+<span class="sourceLineNo">485</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      rsGroupMap = newGroupMap;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>      return;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    }<a name="line.491"></a>
+<span class="sourceLineNo">492</span><a name="line.492"></a>
+<span class="sourceLineNo">493</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>    // Make changes visible after having been persisted to the source of truth<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>    try {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.500"></a>
+<span class="sourceLineNo">501</span><a name="line.501"></a>
+<span class="sourceLineNo">502</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      for(String groupName : prevRSGroups) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>          String znode = ZNodePaths.joinZNode(groupBasePath, groupName);<a name="line.505"></a>
+<span class="sourceLineNo">506</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        }<a name="line.507"></a>
+<span class="sourceLineNo">508</span>      }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        String znode = ZNodePaths.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        LOG.debug("Updating znode: "+znode);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.517"></a>
+<span class="sourceLineNo">518</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      }<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    } catch (KeeperException e) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    }<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>  /**<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   * Make changes visible.<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   * Caller must be synchronized on 'this'.<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   */<a name="line.534"></a>
+<span class="sourceLineNo">535</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    // Make maps Immutable.<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.539"></a>
+<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * Update cache of rsgroups.<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * Caller must be synchronized on 'this'.<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * @param currentGroups Current list of Groups.<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>  private void updateCacheOfRSGroups(final Set&lt;String&gt; currentGroups) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    this.prevRSGroups.clear();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    this.prevRSGroups.addAll(currentGroups);<a name="line.549"></a>
+<span class="sourceLineNo">550</span>  }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>  // Called by getDefaultServers. Presume it has lock in place.<a name="line.552"></a>
+<span class="sourceLineNo">553</span>  private List&lt;ServerName&gt; getOnlineRS() throws IOException {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    if (masterServices != null) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      return masterServices.getServerManager().getOnlineServersList();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    }<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    LOG.debug("Reading online RS from zookeeper");<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    List&lt;ServerName&gt; servers = new LinkedList&lt;&gt;();<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    try {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      for (String el: ZKUtil.listChildrenNoWatch(watcher, watcher.znodePaths.rsZNode)) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>        servers.add(ServerName.parseServerName(el));<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    } catch (KeeperException e) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      throw new IOException("Failed to retrieve server list from zookeeper", e);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    return servers;<a name="line.566"></a>
+<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>  // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs.<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  private SortedSet&lt;Address&gt; getDefaultServers() throws IOException {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    SortedSet&lt;Address&gt; defaultServers = Sets.newTreeSet();<a name="line.571"></a>
+<span class="sourceLineNo">572</span>    for (ServerName serverName : getOnlineRS()) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      Address server =<a name="line.573"></a>
+<span class="sourceLineNo">574</span>          Address.fromParts(serverName.getHostname(), serverName.getPort());<a name="line.574"></a>
+<span class="sourceLineNo">575</span>      boolean found = false;<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      for(RSGroupInfo rsgi: listRSGroups()) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        if(!RSGroupInfo.DEFAULT_GROUP.equals(rsgi.getName()) &amp;&amp;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>            rsgi.containsServer(server)) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>          found = true;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>          break;<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        }<a name="line.581"></a>
 <span class="sourceLineNo">582</span>      }<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    }<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    for (RegionInfo region: stuckAssignments) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      LOG.info("Retrying assignment of " + region);<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      try {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        masterServices.getAssignmentManager().unassign(region);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      } catch (IOException e) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>        LOG.warn("Unable to reassign " + region, e);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>  /**<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * Calls {@link RSGroupInfoManagerImpl#updateDefaultServers(SortedSet)} to update list of known<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * servers. Notifications about server changes are received by registering {@link ServerListener}.<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * As a listener, we need to return immediately, so the real work of updating the servers is<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * done asynchronously in this thread.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  private class ServerEventsListenerThread extends Thread implements ServerListener {<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    private final Log LOG = LogFactory.getLog(ServerEventsListenerThread.class);<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    private boolean changed = false;<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span>    ServerEventsListenerThread() {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>      setDaemon(true);<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    }<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>    @Override<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    public void serverAdded(ServerName serverName) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      serverChanged();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    }<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    @Override<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    public void serverRemoved(ServerName serverName) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      serverChanged();<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>    private synchronized void serverChanged() {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      changed = true;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      this.notify();<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>    @Override<a name="line.623"></a>
-<span class="sourceLineNo">624</span>    public void run() {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      setName(ServerEventsListenerThread.class.getName() + "-" + masterServices.getServerName());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      SortedSet&lt;Address&gt; prevDefaultServers = new TreeSet&lt;&gt;();<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      while(isMasterRunning(masterServices)) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        try {<a name="line.628"></a>
-<span class="sourceLineNo">629</span>          LOG.info("Updating default servers.");<a name="line.629"></a>
-<span class="sourceLineNo">630</span>          SortedSet&lt;Address&gt; servers = RSGroupInfoManagerImpl.this.getDefaultServers();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>          if (!servers.equals(prevDefaultServers)) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>            RSGroupInfoManagerImpl.this.updateDefaultServers(servers);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>            prevDefaultServers = servers;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>            LOG.info("Updated with servers: "+servers.size());<a name="line.634"></a>
-<span class="sourceLineNo">635</span>          }<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          try {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>            synchronized (this) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>              while (!changed) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>                wait();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>              }<a name="line.640"></a>
-<span class="sourceLineNo">641</span>              changed = false;<a name="line.641"></a>
-<span class="sourceLineNo">642</span>            }<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          } catch (InterruptedException e) {<a name="line.643"></a>
-<span class="sourceLineNo">644</span>            LOG.warn("Interrupted", e);<a name="line.644"></a>
-<span class="sourceLineNo">645</span>          }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>        } catch (IOException e) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          LOG.warn("Failed to update default servers", e);<a name="line.647"></a>
-<span class="sourceLineNo">648</span>        }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    }<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>  private class FailedOpenUpdaterThread extends Thread implements ServerListener {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    private final long waitInterval;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    private volatile boolean hasChanged = false;<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>    public FailedOpenUpdaterThread(Configuration conf) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>      this.waitInterval = conf.getLong(REASSIGN_WAIT_INTERVAL_KEY,<a name="line.658"></a>
-<span class="sourceLineNo">659</span>        DEFAULT_REASSIGN_WAIT_INTERVAL);<a name="line.659"></a>
-<span class="sourceLineNo">660</span>      setDaemon(true);<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    }<a name="line.661"></a>
-<span class="sourceLineNo">662</span><a name="line.662"></a>
-<span class="sourceLineNo">663</span>    @Override<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    public void serverAdded(ServerName serverName) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      serverChanged();<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>    @Override<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    public void serverRemoved(ServerName serverName) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    }<a name="line.670"></a>
-<span class="sourceLineNo">671</span><a name="line.671"></a>
-<span class="sourceLineNo">672</span>    @Override<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    public void run() {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>      while (isMasterRunning(masterServices)) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        boolean interrupted = false;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        try {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          synchronized (this) {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>            while (!hasChanged) {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>              wait();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>            }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>            hasChanged = false;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>          }<a name="line.682"></a>
-<span class="sourceLineNo">683</span>        } catch (InterruptedException e) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          LOG.warn("Interrupted", e);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          interrupted = true;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>        }<a name="line.686"></a>
-<span class="sourceLineNo">687</span>        if (!isMasterRunning(masterServices) || interrupted) {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>          continue;<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        }<a name="line.689"></a>
-<span class="sourceLineNo">690</span><a name="line.690"></a>
-<span class="sourceLineNo">691</span>        // First, wait a while in case more servers are about to rejoin the cluster<a name="line.691"></a>
-<span class="sourceLineNo">692</span>        try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>          Thread.sleep(waitInterval);<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        } catch (InterruptedException e) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          LOG.warn("Interrupted", e);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        if (!isMasterRunning(masterServices)) {<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          continue;<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        }<a name="line.699"></a>
-<span class="sourceLineNo">700</span><a name="line.700"></a>
-<span class="sourceLineNo">701</span>        // Kick all regions in FAILED_OPEN state<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        updateFailedAssignments();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>    public void serverChanged() {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      synchronized (this) {<a name="line.707"></a>
-<span class="sourceLineNo">708</span>        hasChanged = true;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        this.notify();<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  private class RSGroupStartupWorker extends Thread {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    private final Log LOG = LogFactory.getLog(RSGroupStartupWorker.class);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    private volatile boolean online = false;<a name="line.716"></a>
-<span class="sourceLineNo">717</span><a name="line.717"></a>
-<span class="sourceLineNo">718</span>    RSGroupStartupWorker() {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      setDaemon(true);<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    }<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    @Override<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    public void run() {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      setName(RSGroupStartupWorker.class.getName() + "-" + masterServices.getServerName());<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      if (waitForGroupTableOnline()) {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        LOG.info("GroupBasedLoadBalancer is now online");<a name="line.726"></a>
-<span class="sourceLineNo">727</span>      }<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    }<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>    private boolean waitForGroupTableOnline() {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final List&lt;RegionInfo&gt; foundRegions = new LinkedList&lt;&gt;();<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      final List&lt;RegionInfo&gt; assignedRegions = new LinkedList&lt;&gt;();<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      final AtomicBoolean found = new AtomicBoolean(false);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      final TableStateManager tsm = masterServices.getTableStateManager();<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      boolean createSent = false;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      while (!found.get() &amp;&amp; isMasterRunning(masterServices)) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>        foundRegions.clear();<a name="line.737"></a>
-<span class="sourceLineNo">738</span>        assignedRegions.clear();<a name="line.738"></a>
-<span class="sourceLineNo">739</span>        found.set(true);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>        try {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>          conn.getTable(TableName.NAMESPACE_TABLE_NAME);<a name="line.741"></a>
-<span class="sourceLineNo">742</span>          conn.getTable(RSGROUP_TABLE_NAME);<a name="line.742"></a>
-<span class="sourceLineNo">743</span>          boolean rootMetaFound =<a name="line.743"></a>
-<span class="sourceLineNo">744</span>              masterServices.getMetaTableLocator().verifyMetaRegionLocation(<a name="line.744"></a>
-<span class="sourceLineNo">745</span>                  conn, masterServices.getZooKeeper(), 1);<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          final AtomicBoolean nsFound = new AtomicBoolean(false);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>          if (rootMetaFound) {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>            MetaTableAccessor.Visitor visitor = new DefaultVisitorBase() {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>              @Override<a name="line.749"></a>
-<span class="sourceLineNo">750</span>              public boolean visitInternal(Result row) throws IOException {<a name="line.750"></a>
-<span class="sourceLineNo">751</span>                RegionInfo info = MetaTableAccessor.getRegionInfo(row);<a name="line.751"></a>
-<span class="sourceLineNo">752</span>                if (info != null) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>                  Cell serverCell =<a name="line.753"></a>
-<span class="sourceLineNo">754</span>                      row.getColumnLatestCell(HConstants.CATALOG_FAMILY,<a name="line.754"></a>
-<span class="sourceLineNo">755</span>                          HConstants.SERVER_QUALIFIER);<a name="line.755"></a>
-<span class="sourceLineNo">756</span>                  if (RSGROUP_TABLE_NAME.equals(info.getTable()) &amp;&amp; serverCell != null) {<a name="line.756"></a>
-<span class="sourceLineNo">757</span>                    ServerName sn =<a name="line.757"></a>
-<span class="sourceLineNo">758</span>                        ServerName.parseVersionedServerName(CellUtil.cloneValue(serverCell));<a name="line.758"></a>
-<span class="sourceLineNo">759</span>                    if (sn == null) {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>                      found.set(false);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>                    } else if (tsm.isTableState(RSGROUP_TABLE_NAME, TableState.State.ENABLED)) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>                      try {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                        ClientProtos.ClientService.BlockingInterface rs = conn.getClient(sn);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                        ClientProtos.GetRequest request =<a name="line.764"></a>
-<span class="sourceLineNo">765</span>                            RequestConverter.buildGetRequest(info.getRegionName(),<a name="line.765"></a>
-<span class="sourceLineNo">766</span>                                new Get(ROW_KEY));<a name="line.766"></a>
-<span class="sourceLineNo">767</span>                        rs.get(null, request);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>                        assignedRegions.add(info);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>                      } catch(Exception ex) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>                        LOG.debug("Caught exception while verifying group region", ex);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>                      }<a name="line.771"></a>
-<span class="sourceLineNo">772</span>                    }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>                    foundRegions.add(info);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>                  }<a name="line.774"></a>
-<span class="sourceLineNo">775</span>                  if (TableName.NAMESPACE_TABLE_NAME.equals(info.getTable())) {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>                    Cell cell = row.getColumnLatestCell(HConstants.CATALOG_FAMILY,<a name="line.776"></a>
-<span class="sourceLineNo">777</span>                        HConstants.SERVER_QUALIFIER);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>                    ServerName sn = null;<a name="line.778"></a>
-<span class="sourceLineNo">779</span>                    if(cell != null) {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>                      sn = ServerName.parseVersionedServerName(CellUtil.cloneValue(cell));<a name="line.780"></a>
-<span class="sourceLineNo">781</span>                    }<a name="line.781"></a>
-<span class="sourceLineNo">782</span>                    if (sn == null) {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>                      nsFound.set(false);<a name="line.783"></a>
-<span class="sourceLineNo">784</span>                    } else if (tsm.isTableState(TableName.NAMESPACE_TABLE_NAME,<a name="line.784"></a>
-<span class="sourceLineNo">785</span>                        TableState.State.ENABLED)) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>                      try {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>                        ClientProtos.ClientService.BlockingInterface rs = conn.getClient(sn);<a name="line.787"></a>
-<span class="sourceLineNo">788</span>                        ClientProtos.GetRequest request =<a name="line.788"></a>
-<span class="sourceLineNo">789</span>                            RequestConverter.buildGetRequest(info.getRegionName(),<a name="line.789"></a>
-<span class="sourceLineNo">790</span>                                new Get(ROW_KEY));<a name="line.790"></a>
-<span class="sourceLineNo">791</span>                        rs.get(null, request);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>                        nsFound.set(true);<a name="line.792"></a>
-<span class="sourceLineNo">793</span>                      } catch(Exception ex) {<a name="line.793"></a>
-<span class="sourceLineNo">794</span>                        LOG.debug("Caught exception while verifying group region", ex);<a name="line.794"></a>
-<span class="sourceLineNo">795</span>                      }<a name="line.795"></a>
-<span class="sourceLineNo">796</span>                    }<a name="line.796"></a>
-<span class="sourceLineNo">797</span>                  }<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                }<a name="line.798"></a>
-<span class="sourceLineNo">799</span>                return true;<a name="line.799"></a>
-<span class="sourceLineNo">800</span>              }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>            };<a name="line.801"></a>
-<span class="sourceLineNo">802</span>            MetaTableAccessor.fullScanRegions(conn, visitor);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>            // if no regions in meta then we have to create the table<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            if (foundRegions.size() &lt; 1 &amp;&amp; rootMetaFound &amp;&amp; !createSent &amp;&amp; nsFound.get()) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>              createRSGroupTable();<a name="line.805"></a>
-<span class="sourceLineNo">806</span>              createSent = true;<a name="line.806"></a>
-<span class="sourceLineNo">807</span>            }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            LOG.info("RSGroup table=" + RSGROUP_TABLE_NAME + " isOnline=" + found.get()<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                + ", regionCount=" + foundRegions.size() + ", assignCount="<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                + assignedRegions.size() + ", rootMetaFound=" + rootMetaFound);<a name="line.810"></a>
-<span class="sourceLineNo">811</span>            found.set(found.get() &amp;&amp; assignedRegions.size() == foundRegions.size()<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                &amp;&amp; foundRegions.size() &gt; 0);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          } else {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>            LOG.info("Waiting for catalog tables to come online");<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            found.set(false);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>          }<a name="line.816"></a>
-<span class="sourceLineNo">817</span>          if (found.get()) {<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            LOG.debug("With group table online, refreshing cached information.");<a name="line.818"></a>
-<span class="sourceLineNo">819</span>            RSGroupInfoManagerImpl.this.refresh(true);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            online = true;<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            //flush any inconsistencies between ZK and HTable<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            RSGroupInfoManagerImpl.this.flushConfig();<a name="line.822"></a>
-<span class="sourceLineNo">823</span>          }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>        } catch (RuntimeException e) {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>          throw e;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>        } catch(Exception e) {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          found.set(false);<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          LOG.warn("Failed to perform check", e);<a name="line.828"></a>
-<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
-<span class="sourceLineNo">830</span>        try {<a name="line.830"></a>
-<span class="sourceLineNo">831</span>          Thread.sleep(100);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>        } catch (InterruptedException e) {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          LOG.info("Sleep interrupted", e);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      }<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      return found.get();<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>    private void createRSGroupTable() throws IOException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>      Long procId = masterServices.createSystemTable(RSGROUP_TABLE_DESC);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      // wait for region to be online<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      int tries = 600;<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      while (!(masterServices.getMasterProcedureExecutor().isFinished(procId))<a name="line.843"></a>
-<span class="sourceLineNo">844</span>          &amp;&amp; masterServices.getMasterProcedureExecutor().isRunning()<a name="line.844"></a>
-<span class="sourceLineNo">845</span>          &amp;&amp; tries &gt; 0) {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>        try {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          Thread.sleep(100);<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } catch (InterruptedException e) {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new IOException("Wait interrupted ", e);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        tries--;<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      if(tries &lt;= 0) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        throw new IOException("Failed to create group table in a given time.");<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      } else {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        Procedure&lt;?&gt; result = masterServices.getMasterProcedureExecutor().getResult(procId);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        if (result != null &amp;&amp; result.isFailed()) {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>          throw new IOException("Failed to create group table. " +<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            result.getException().unwrapRemoteIOException());<a name="line.859"></a>
+<span class="sourceLineNo">583</span>      if (!found) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        defaultServers.add(server);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    return defaultServers;<a name="line.587"></a>
+<span class="sourceLineNo">588</span>  }<a name="line.588"></a>
+<span class="sourceLineNo">589</span><a name="line.589"></a>
+<span class="sourceLineNo">590</span>  // Called by ServerEventsListenerThread. Synchronize on this because redoing<a name="line.590"></a>
+<span class="sourceLineNo">591</span>  // the rsGroupMap then writing it out.<a name="line.591"></a>
+<span class="sourceLineNo">592</span>  private synchronized void updateDefaultServers(SortedSet&lt;Address&gt; servers) throws IOException {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    RSGroupInfo info = rsGroupMap.get(RSGroupInfo.DEFAULT_GROUP);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    RSGroupInfo newInfo = new RSGroupInfo(info.getName(), servers, info.getTables());<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    newGroupMap.put(newInfo.getName(), newInfo);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    flushConfig(newGroupMap);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>  }<a name="line.598"></a>
+<span class="sourceLineNo">599</span><a name="line.599"></a>
+<span class="sourceLineNo">600</span>  // Called by FailedOpenUpdaterThread<a name="line.600"></a>
+<span class="sourceLineNo">601</span>  private void updateFailedAssignments() {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    // Kick all regions in FAILED_OPEN state<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    List&lt;RegionInfo&gt; stuckAssignments = Lists.newArrayList();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    for (RegionStateNode state:<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        masterServices.getAssignmentManager().getRegionStates().getRegionsInTransition()) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      if (state.isStuck()) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        stuckAssignments.add(state.getRegionInfo());<a name="line.607"></a>
+<span class="sourceLineNo">608</span>      }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    for (RegionInfo region: stuckAssignments) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      LOG.info("Retrying assignment of " + region);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      try {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        masterServices.getAssignmentManager().unassign(region);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      } catch (IOException e) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        LOG.warn("Unable to reassign " + region, e);<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    }<a name="line.617"></a>
+<span class="sourceLineNo">618</span>  }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span>  /**<a name="line.620"></a>
+<span class="sourceLineNo">621</span>   * Calls {@link RSGroupInfoManagerImpl#updateDefaultServers(SortedSet)} to update list of known<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * servers. Notifications about server changes are received by registering {@link ServerListener}.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * As a listener, we need to return immediately, so the real work of updating the servers is<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * done asynchronously in this thread.<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   */<a name="line.625"></a>
+<span class="sourceLineNo">626</span>  private class ServerEventsListenerThread extends Thread implements ServerListener {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    private final Log LOG = LogFactory.getLog(ServerEventsListenerThread.class);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    private boolean changed = false;<a name="line.628"></a>
+<span class="sourceLineNo">629</span><a name="line.629"></a>
+<span class="sourceLineNo">630</span>    ServerEventsListenerThread() {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      setDaemon(true);<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    }<a name="line.632"></a>
+<span class="sourceLineNo">633</span><a name="line.633"></a>
+<span class="sourceLineNo">634</span>    @Override<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    public void serverAdded(ServerName serverName) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      serverChanged();<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    @Override<a name="line.639"></a>
+<span class="sourceLineNo">640</span>    public void serverRemoved(ServerName serverName) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>      serverChanged();<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    }<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>    private synchronized void serverChanged() {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      changed = true;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      this.notify();<a name="line.646"></a>
+<span class="sourceLineNo">647</span>    }<a name="line.647"></a>
+<span class="sourceLineNo">648</span><a name="line.648"></a>
+<span class="sourceLineNo">649</span>    @Override<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    public void run() {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>      setName(ServerEventsListenerThread.class.getName() + "-" + masterServices.getServerName());<a name="line.651"></a>
+<span class="sourceLineNo">652</span>      SortedSet&lt;Address&gt; prevDefaultServers = new TreeSet&lt;&gt;();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      while(isMasterRunning(masterServices)) {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        try {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>          LOG.info("Updating default serv

<TRUNCATED>

[20/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
index f2eeed3..a39f905 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
@@ -29,344 +29,380 @@
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.util.Collections;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.util.HashSet;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.Optional;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.Set;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.RpcCallback;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import com.google.protobuf.RpcController;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import com.google.protobuf.Service;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.commons.logging.Log;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.commons.logging.LogFactory;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.CoprocessorEnvironment;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HConstants;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.TableName;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.SnapshotDescription;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.coprocessor.CoreCoprocessor;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.coprocessor.HasMasterServices;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessor;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.coprocessor.MasterObserver;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.net.Address;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupRequest;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupResponse;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupRequest;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupResponse;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerRequest;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerResponse;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfTableRequest;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfTableResponse;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoRequest;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoResponse;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosRequest;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosResponse;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesRequest;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesResponse;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersRequest;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersResponse;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesRequest;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesResponse;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupRequest;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupResponse;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>// TODO: Encapsulate MasterObserver functions into separate subclass.<a name="line.76"></a>
-<span class="sourceLineNo">077</span>@CoreCoprocessor<a name="line.77"></a>
-<span class="sourceLineNo">078</span>@InterfaceAudience.Private<a name="line.78"></a>
-<span class="sourceLineNo">079</span>public class RSGroupAdminEndpoint implements MasterCoprocessor, MasterObserver {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static final Log LOG = LogFactory.getLog(RSGroupAdminEndpoint.class);<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private MasterServices master = null;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  // Only instance of RSGroupInfoManager. RSGroup aware load balancers ask for this instance on<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  // their setup.<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private RSGroupInfoManager groupInfoManager;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private RSGroupAdminServer groupAdminServer;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private final RSGroupAdminService groupAdminService = new RSGroupAdminServiceImpl();<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  @Override<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    if (!(env instanceof HasMasterServices)) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      throw new IOException("Does not implement HMasterServices");<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    }<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    master = ((HasMasterServices)env).getMasterServices();<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    groupInfoManager = RSGroupInfoManagerImpl.getInstance(master);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    groupAdminServer = new RSGroupAdminServer(master, groupInfoManager);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    Class&lt;?&gt; clazz =<a name="line.97"></a>
-<span class="sourceLineNo">098</span>        master.getConfiguration().getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, null);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    if (!RSGroupableBalancer.class.isAssignableFrom(clazz)) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      throw new IOException("Configured balancer does not support RegionServer groups.");<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>  @Override<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  public Iterable&lt;Service&gt; getServices() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    return Collections.singleton(groupAdminService);<a name="line.106"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Optional;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.Set;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.stream.Collectors;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>import com.google.protobuf.RpcCallback;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import com.google.protobuf.RpcController;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import com.google.protobuf.Service;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.commons.logging.Log;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.commons.logging.LogFactory;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.CoprocessorEnvironment;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HConstants;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.ServerName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.TableName;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.SnapshotDescription;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.coprocessor.CoreCoprocessor;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.coprocessor.HasMasterServices;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.coprocessor.MasterObserver;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.net.Address;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupRequest;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupResponse;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupRequest;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupResponse;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerRequest;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerResponse;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfTableRequest;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfTableResponse;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoRequest;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoResponse;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosRequest;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosResponse;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesRequest;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesResponse;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersRequest;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersResponse;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesRequest;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesResponse;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupRequest;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupResponse;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersRequest;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersResponse;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>// TODO: Encapsulate MasterObserver functions into separate subclass.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>@CoreCoprocessor<a name="line.82"></a>
+<span class="sourceLineNo">083</span>@InterfaceAudience.Private<a name="line.83"></a>
+<span class="sourceLineNo">084</span>public class RSGroupAdminEndpoint implements MasterCoprocessor, MasterObserver {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private static final Log LOG = LogFactory.getLog(RSGroupAdminEndpoint.class);<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  private MasterServices master = null;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  // Only instance of RSGroupInfoManager. RSGroup aware load balancers ask for this instance on<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  // their setup.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private RSGroupInfoManager groupInfoManager;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  private RSGroupAdminServer groupAdminServer;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private final RSGroupAdminService groupAdminService = new RSGroupAdminServiceImpl();<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  @Override<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    if (!(env instanceof HasMasterServices)) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      throw new IOException("Does not implement HMasterServices");<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    master = ((HasMasterServices)env).getMasterServices();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    groupInfoManager = RSGroupInfoManagerImpl.getInstance(master);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    groupAdminServer = new RSGroupAdminServer(master, groupInfoManager);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    Class&lt;?&gt; clazz =<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        master.getConfiguration().getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, null);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    if (!RSGroupableBalancer.class.isAssignableFrom(clazz)) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      throw new IOException("Configured balancer does not support RegionServer groups.");<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
 <span class="sourceLineNo">107</span>  }<a name="line.107"></a>
 <span class="sourceLineNo">108</span><a name="line.108"></a>
 <span class="sourceLineNo">109</span>  @Override<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  public Optional&lt;MasterObserver&gt; getMasterObserver() {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    return Optional.of(this);<a name="line.111"></a>
+<span class="sourceLineNo">110</span>  public Iterable&lt;Service&gt; getServices() {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    return Collections.singleton(groupAdminService);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>  }<a name="line.112"></a>
 <span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>  RSGroupInfoManager getGroupInfoManager() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    return groupInfoManager;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * Implementation of RSGroupAdminService defined in RSGroupAdmin.proto.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   * This class calls {@link RSGroupAdminServer} for actual work, converts result to protocol<a name="line.120"></a>
-<span class="sourceLineNo">121</span>   * buffer response, handles exceptions if any occurred and then calls the {@code RpcCallback} with<a name="line.121"></a>
-<span class="sourceLineNo">122</span>   * the response.<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   */<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  private class RSGroupAdminServiceImpl extends RSGroupAdminProtos.RSGroupAdminService {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    @Override<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    public void getRSGroupInfo(RpcController controller,<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        GetRSGroupInfoRequest request, RpcCallback&lt;GetRSGroupInfoResponse&gt; done) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      GetRSGroupInfoResponse.Builder builder = GetRSGroupInfoResponse.newBuilder();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      String groupName = request.getRSGroupName();<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, group="<a name="line.130"></a>
-<span class="sourceLineNo">131</span>              + groupName);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      try {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        if (rsGroupInfo != null) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(rsGroupInfo));<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      } catch (IOException e) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      }<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      done.run(builder.build());<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span>    @Override<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    public void getRSGroupInfoOfTable(RpcController controller,<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        GetRSGroupInfoOfTableRequest request, RpcCallback&lt;GetRSGroupInfoOfTableResponse&gt; done) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      GetRSGroupInfoOfTableResponse.Builder builder = GetRSGroupInfoOfTableResponse.newBuilder();<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      try {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, table="<a name="line.149"></a>
-<span class="sourceLineNo">150</span>                + tableName);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>        RSGroupInfo RSGroupInfo = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        if (RSGroupInfo != null) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.153"></a>
-<span class="sourceLineNo">154</span>        }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      } catch (IOException e) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      done.run(builder.build());<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>    @Override<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    public void moveServers(RpcController controller, MoveServersRequest request,<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        RpcCallback&lt;MoveServersResponse&gt; done) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      MoveServersResponse.Builder builder = MoveServersResponse.newBuilder();<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      try {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>          hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts +" to rsgroup "<a name="line.170"></a>
-<span class="sourceLineNo">171</span>                + request.getTargetGroup());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        groupAdminServer.moveServers(hostPorts, request.getTargetGroup());<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      } catch (IOException e) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      }<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      done.run(builder.build());<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>    @Override<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    public void moveTables(RpcController controller, MoveTablesRequest request,<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        RpcCallback&lt;MoveTablesResponse&gt; done) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      MoveTablesResponse.Builder builder = MoveTablesResponse.newBuilder();<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      try {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>          tables.add(ProtobufUtil.toTableName(tableName));<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        LOG.info(master.getClientIdAuditPrefix() + " move tables " + tables +" to rsgroup "<a name="line.188"></a>
-<span class="sourceLineNo">189</span>                + request.getTargetGroup());<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        groupAdminServer.moveTables(tables, request.getTargetGroup());<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      } catch (IOException e) {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      done.run(builder.build());<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>    @Override<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    public void addRSGroup(RpcController controller, AddRSGroupRequest request,<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        RpcCallback&lt;AddRSGroupResponse&gt; done) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      AddRSGroupResponse.Builder builder = AddRSGroupResponse.newBuilder();<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      LOG.info(master.getClientIdAuditPrefix() + " add rsgroup " + request.getRSGroupName());<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      try {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        groupAdminServer.addRSGroup(request.getRSGroupName());<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      } catch (IOException e) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      done.run(builder.build());<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>    @Override<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    public void removeRSGroup(RpcController controller,<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        RemoveRSGroupRequest request, RpcCallback&lt;RemoveRSGroupResponse&gt; done) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      RemoveRSGroupResponse.Builder builder =<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          RemoveRSGroupResponse.newBuilder();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      LOG.info(master.getClientIdAuditPrefix() + " remove rsgroup " + request.getRSGroupName());<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      try {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        groupAdminServer.removeRSGroup(request.getRSGroupName());<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      } catch (IOException e) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      }<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      done.run(builder.build());<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>    @Override<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    public void balanceRSGroup(RpcController controller,<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        BalanceRSGroupRequest request, RpcCallback&lt;BalanceRSGroupResponse&gt; done) {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      BalanceRSGroupResponse.Builder builder = BalanceRSGroupResponse.newBuilder();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      LOG.info(master.getClientIdAuditPrefix() + " balance rsgroup, group=" + request.getRSGroupName());<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      try {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        builder.setBalanceRan(groupAdminServer.balanceRSGroup(request.getRSGroupName()));<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      } catch (IOException e) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        builder.setBalanceRan(false);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      }<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      done.run(builder.build());<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public void listRSGroupInfos(RpcController controller,<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        ListRSGroupInfosRequest request, RpcCallback&lt;ListRSGroupInfosResponse&gt; done) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      ListRSGroupInfosResponse.Builder builder = ListRSGroupInfosResponse.newBuilder();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      LOG.info(master.getClientIdAuditPrefix() + " list rsgroup");<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      try {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        for (RSGroupInfo RSGroupInfo : groupAdminServer.listRSGroups()) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>          builder.addRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        }<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      } catch (IOException e) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      done.run(builder.build());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    @Override<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    public void getRSGroupInfoOfServer(RpcController controller,<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        GetRSGroupInfoOfServerRequest request, RpcCallback&lt;GetRSGroupInfoOfServerResponse&gt; done) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      GetRSGroupInfoOfServerResponse.Builder builder = GetRSGroupInfoOfServerResponse.newBuilder();<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      try {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        Address hp = Address.fromParts(request.getServer().getHostName(),<a name="line.258"></a>
-<span class="sourceLineNo">259</span>            request.getServer().getPort());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>        LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, server=" + hp);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        RSGroupInfo RSGroupInfo = groupAdminServer.getRSGroupOfServer(hp);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>        if (RSGroupInfo != null) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      } catch (IOException e) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      done.run(builder.build());<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    }<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>    @Override<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    public void moveServersAndTables(RpcController controller,<a name="line.272"></a>
-<span class="sourceLineNo">273</span>        MoveServersAndTablesRequest request, RpcCallback&lt;MoveServersAndTablesResponse&gt; done) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      MoveServersAndTablesResponse.Builder builder = MoveServersAndTablesResponse.newBuilder();<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      try {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>        Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>          hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>        for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>          tables.add(ProtobufUtil.toTableName(tableName));<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
-<span class="sourceLineNo">284</span>        LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts<a name="line.284"></a>
-<span class="sourceLineNo">285</span>                + " and tables " + tables + " to rsgroup" + request.getTargetGroup());<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        groupAdminServer.moveServersAndTables(hostPorts, tables, request.getTargetGroup());<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      } catch (IOException e) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      }<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      done.run(builder.build());<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  void assignTableToGroup(TableDescriptor desc) throws IOException {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    String groupName =<a name="line.295"></a>
-<span class="sourceLineNo">296</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.296"></a>
-<span class="sourceLineNo">297</span>                .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (groupName == null) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    if (rsGroupInfo == null) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      throw new ConstraintException("Default RSGroup (" + groupName + ") for this table's "<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          + "namespace does not exist.");<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    if (!rsGroupInfo.containsTable(desc.getTableName())) {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      LOG.debug("Pre-moving table " + desc.getTableName() + " to RSGroup " + groupName);<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      groupAdminServer.moveTables(Sets.newHashSet(desc.getTableName()), groupName);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    }<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  // MasterObserver overrides<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  // Assign table to default RSGroup.<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  @Override<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      TableDescriptor desc, RegionInfo[] regions) throws IOException {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    assignTableToGroup(desc);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  // Remove table from its RSGroup.<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  @Override<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                              TableName tableName) throws IOException {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    try {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      RSGroupInfo group = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      if (group != null) {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        LOG.debug(String.format("Removing deleted table '%s' from rsgroup '%s'", tableName,<a name="line.330"></a>
-<span class="sourceLineNo">331</span>            group.getName()));<a name="line.331"></a>
-<span class="sourceLineNo">332</span>        groupAdminServer.moveTables(Sets.newHashSet(tableName), null);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    } catch (IOException ex) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      LOG.debug("Failed to perform RSGroup information cleanup for table: " + tableName, ex);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  public void preCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.340"></a>
-<span class="sourceLineNo">341</span>                                 NamespaceDescriptor ns) throws IOException {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    String group = ns.getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    if(group != null &amp;&amp; groupAdminServer.getRSGroupInfo(group) == null) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      throw new ConstraintException("Region server group "+group+" does not exit");<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
+<span class="sourceLineNo">114</span>  @Override<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public Optional&lt;MasterObserver&gt; getMasterObserver() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    return Optional.of(this);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  RSGroupInfoManager getGroupInfoManager() {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    return groupInfoManager;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  /**<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * Implementation of RSGroupAdminService defined in RSGroupAdmin.proto.<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * This class calls {@link RSGroupAdminServer} for actual work, converts result to protocol<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * buffer response, handles exceptions if any occurred and then calls the {@code RpcCallback} with<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * the response.<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private class RSGroupAdminServiceImpl extends RSGroupAdminProtos.RSGroupAdminService {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    @Override<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void getRSGroupInfo(RpcController controller,<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        GetRSGroupInfoRequest request, RpcCallback&lt;GetRSGroupInfoResponse&gt; done) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      GetRSGroupInfoResponse.Builder builder = GetRSGroupInfoResponse.newBuilder();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      String groupName = request.getRSGroupName();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, group="<a name="line.135"></a>
+<span class="sourceLineNo">136</span>              + groupName);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      try {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        if (rsGroupInfo != null) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(rsGroupInfo));<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      } catch (IOException e) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      done.run(builder.build());<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>    @Override<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    public void getRSGroupInfoOfTable(RpcController controller,<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        GetRSGroupInfoOfTableRequest request, RpcCallback&lt;GetRSGroupInfoOfTableResponse&gt; done) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      GetRSGroupInfoOfTableResponse.Builder builder = GetRSGroupInfoOfTableResponse.newBuilder();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      try {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, table="<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                + tableName);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        RSGroupInfo RSGroupInfo = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        if (RSGroupInfo != null) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      } catch (IOException e) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      done.run(builder.build());<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>    @Override<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public void moveServers(RpcController controller, MoveServersRequest request,<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        RpcCallback&lt;MoveServersResponse&gt; done) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      MoveServersResponse.Builder builder = MoveServersResponse.newBuilder();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      try {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts +" to rsgroup "<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                + request.getTargetGroup());<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        groupAdminServer.moveServers(hostPorts, request.getTargetGroup());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      } catch (IOException e) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      done.run(builder.build());<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>    @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    public void moveTables(RpcController controller, MoveTablesRequest request,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        RpcCallback&lt;MoveTablesResponse&gt; done) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      MoveTablesResponse.Builder builder = MoveTablesResponse.newBuilder();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      try {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          tables.add(ProtobufUtil.toTableName(tableName));<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        LOG.info(master.getClientIdAuditPrefix() + " move tables " + tables +" to rsgroup "<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                + request.getTargetGroup());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        groupAdminServer.moveTables(tables, request.getTargetGroup());<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      } catch (IOException e) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      done.run(builder.build());<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    @Override<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    public void addRSGroup(RpcController controller, AddRSGroupRequest request,<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        RpcCallback&lt;AddRSGroupResponse&gt; done) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      AddRSGroupResponse.Builder builder = AddRSGroupResponse.newBuilder();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      LOG.info(master.getClientIdAuditPrefix() + " add rsgroup " + request.getRSGroupName());<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        groupAdminServer.addRSGroup(request.getRSGroupName());<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      } catch (IOException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      done.run(builder.build());<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>    @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void removeRSGroup(RpcController controller,<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        RemoveRSGroupRequest request, RpcCallback&lt;RemoveRSGroupResponse&gt; done) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      RemoveRSGroupResponse.Builder builder =<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          RemoveRSGroupResponse.newBuilder();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      LOG.info(master.getClientIdAuditPrefix() + " remove rsgroup " + request.getRSGroupName());<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        groupAdminServer.removeRSGroup(request.getRSGroupName());<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      } catch (IOException e) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      done.run(builder.build());<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>    @Override<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    public void balanceRSGroup(RpcController controller,<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        BalanceRSGroupRequest request, RpcCallback&lt;BalanceRSGroupResponse&gt; done) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      BalanceRSGroupResponse.Builder builder = BalanceRSGroupResponse.newBuilder();<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      LOG.info(master.getClientIdAuditPrefix() + " balance rsgroup, group=" + request.getRSGroupName());<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      try {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        builder.setBalanceRan(groupAdminServer.balanceRSGroup(request.getRSGroupName()));<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      } catch (IOException e) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        builder.setBalanceRan(false);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      }<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      done.run(builder.build());<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>    @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public void listRSGroupInfos(RpcController controller,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        ListRSGroupInfosRequest request, RpcCallback&lt;ListRSGroupInfosResponse&gt; done) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      ListRSGroupInfosResponse.Builder builder = ListRSGroupInfosResponse.newBuilder();<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      LOG.info(master.getClientIdAuditPrefix() + " list rsgroup");<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      try {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        for (RSGroupInfo RSGroupInfo : groupAdminServer.listRSGroups()) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>          builder.addRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      } catch (IOException e) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      done.run(builder.build());<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>    @Override<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    public void getRSGroupInfoOfServer(RpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        GetRSGroupInfoOfServerRequest request, RpcCallback&lt;GetRSGroupInfoOfServerResponse&gt; done) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      GetRSGroupInfoOfServerResponse.Builder builder = GetRSGroupInfoOfServerResponse.newBuilder();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      try {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        Address hp = Address.fromParts(request.getServer().getHostName(),<a name="line.263"></a>
+<span class="sourceLineNo">264</span>            request.getServer().getPort());<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, server=" + hp);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        RSGroupInfo RSGroupInfo = groupAdminServer.getRSGroupOfServer(hp);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (RSGroupInfo != null) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      } catch (IOException e) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      done.run(builder.build());<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>    @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    public void moveServersAndTables(RpcController controller,<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        MoveServersAndTablesRequest request, RpcCallback&lt;MoveServersAndTablesResponse&gt; done) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      MoveServersAndTablesResponse.Builder builder = MoveServersAndTablesResponse.newBuilder();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      try {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>          hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>          tables.add(ProtobufUtil.toTableName(tableName));<a name="line.287"></a>
+<span class="sourceLineNo">288</span>        }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                + " and tables " + tables + " to rsgroup" + request.getTargetGroup());<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        groupAdminServer.moveServersAndTables(hostPorts, tables, request.getTargetGroup());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      } catch (IOException e) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      done.run(builder.build());<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span>    @Override<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    public void removeServers(RpcController controller,<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        RemoveServersRequest request,<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        RpcCallback&lt;RemoveServersResponse&gt; done) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      RemoveServersResponse.Builder builder =<a name="line.302"></a>
+<span class="sourceLineNo">303</span>          RemoveServersResponse.newBuilder();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      try {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        Set&lt;Address&gt; servers = Sets.newHashSet();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>          servers.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        LOG.info(master.getClientIdAuditPrefix()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>            + " remove decommissioned servers from rsgroup: " + servers);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        groupAdminServer.removeServers(servers);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      } catch (IOException e) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      done.run(builder.build());<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>  void assignTableToGroup(TableDescriptor desc) throws IOException {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String groupName =<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    if (groupName == null) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    if (rsGroupInfo == null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      throw new ConstraintException("Default RSGroup (" + groupName + ") for this table's "<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          + "namespace does not exist.");<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    if (!rsGroupInfo.containsTable(desc.getTableName())) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      LOG.debug("Pre-moving table " + desc.getTableName() + " to RSGroup " + groupName);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      groupAdminServer.moveTables(Sets.newHashSet(desc.getTableName()), groupName);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  // MasterObserver overrides<a name="line.338"></a>
+<span class="sourceLineNo">339</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  // Assign table to default RSGroup.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      TableDescriptor desc, RegionInfo[] regions) throws IOException {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    assignTableToGroup(desc);<a name="line.345"></a>
 <span class="sourceLineNo">346</span>  }<a name="line.346"></a>
 <span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>  @Override<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  public void preModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      NamespaceDescriptor ns) throws IOException {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    preCreateNamespace(ctx, ns);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  }<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>  @Override<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  public void preCloneSnapshot(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      SnapshotDescription snapshot, TableDescriptor desc) throws IOException {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    assignTableToGroup(desc);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.360"></a>
-<span class="sourceLineNo">361</span>}<a name="line.361"></a>
+<span class="sourceLineNo">348</span>  // Remove table from its RSGroup.<a name="line.348"></a>
+<span class="sourceLineNo">349</span>  @Override<a name="line.349"></a>
+<span class="sourceLineNo">350</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                              TableName tableName) throws IOException {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      RSGroupInfo group = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      if (group != null) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        LOG.debug(String.format("Removing deleted table '%s' from rsgroup '%s'", tableName,<a name="line.355"></a>
+<span class="sourceLineNo">356</span>            group.getName()));<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        groupAdminServer.moveTables(Sets.newHashSet(tableName), null);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    } catch (IOException ex) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      LOG.debug("Failed to perform RSGroup information cleanup for table: " + tableName, ex);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>  @Override<a name="line.364"></a>
+<span class="sourceLineNo">365</span>  public void preCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                                 NamespaceDescriptor ns) throws IOException {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    String group = ns.getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    if(group != null &amp;&amp; groupAdminServer.getRSGroupInfo(group) == null) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      throw new ConstraintException("Region server group "+group+" does not exit");<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>  public void preModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      NamespaceDescriptor ns) throws IOException {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    preCreateNamespace(ctx, ns);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  public void preCloneSnapshot(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      SnapshotDescription snapshot, TableDescriptor desc) throws IOException {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    assignTableToGroup(desc);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
+<span class="sourceLineNo">386</span>  public void postClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      List&lt;ServerName&gt; servers, List&lt;ServerName&gt; notClearedServers)<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      throws IOException {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    Set&lt;Address&gt; clearedServer = servers.stream().<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        filter(server -&gt; !notClearedServers.contains(server)).<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        map(ServerName::getAddress).<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        collect(Collectors.toSet());<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    groupAdminServer.removeServers(clearedServer);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.396"></a>
+<span class="sourceLineNo">397</span>}<a name="line.397"></a>
 
 
 


[08/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController3.FaultyAccessController.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController3.FaultyAccessController.html b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController3.FaultyAccessController.html
index f5d58e3..5144819 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController3.FaultyAccessController.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/security/access/TestAccessController3.FaultyAccessController.html
@@ -213,7 +213,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.security.access.AccessController</h3>
-<code>checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, initialize, isAuthorizationSupported, isCellAuthorizationSupported, permissionGranted, permissionGranted, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postSetSplitOrMergeEnabled, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preChec
 kAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExists, preFlush, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest
 , preScannerClose, preScannerNext, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preStopMaster, preStopRegionServer, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireNamespacePermission, requireNamespacePermission, revoke, start, updateACL</code></li>
+<code>checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, initialize, isAuthorizationSupported, isCellAuthorizationSupported, permissionGranted, permissionGranted, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postSetSplitOrMergeEnabled, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preChec
 kAndPutAfterRowLock, preCleanupBulkLoad, preClearCompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExists, preFlush, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRo
 llWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preStopMaster, preStopRegionServer, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireNamespacePermission, requireNamespacePermission, revoke, start, updateACL</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -227,7 +227,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRS
 Group, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyTableAction, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
+<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRS
 Group, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyTableAction, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/snapshot/TestSnapshotClientRetries.MasterSyncObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/snapshot/TestSnapshotClientRetries.MasterSyncObserver.html b/testdevapidocs/org/apache/hadoop/hbase/snapshot/TestSnapshotClientRetries.MasterSyncObserver.html
index 8ff7215..d295035 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/snapshot/TestSnapshotClientRetries.MasterSyncObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/snapshot/TestSnapshotClientRetries.MasterSyncObserver.html
@@ -236,7 +236,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, pre
 GetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatu
 s, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index d23f9d5..047d34c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -253,10 +253,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/util/BaseTestHBaseFsck.MasterSyncCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/BaseTestHBaseFsck.MasterSyncCoprocessor.html b/testdevapidocs/org/apache/hadoop/hbase/util/BaseTestHBaseFsck.MasterSyncCoprocessor.html
index 910cb8b..7c8a04c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/BaseTestHBaseFsck.MasterSyncCoprocessor.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/BaseTestHBaseFsck.MasterSyncCoprocessor.html
@@ -235,7 +235,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServe
 rsAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preG
 etReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServe
 rsAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, pre
 GetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index 495080c..dfeceb7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -140,8 +140,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/TestWALSplit.Corruptions.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 </ul>
 </li>


[27/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterObserverOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterObserverOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterObserverOperation.html
index 9fa61e7..a074e6e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterObserverOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterObserverOperation.html
@@ -1409,267 +1409,291 @@
 <span class="sourceLineNo">1401</span>    });<a name="line.1401"></a>
 <span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
 <span class="sourceLineNo">1403</span><a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  public void preAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1404"></a>
+<span class="sourceLineNo">1404</span>  public void preRemoveServers(final Set&lt;Address&gt; servers)<a name="line.1404"></a>
 <span class="sourceLineNo">1405</span>      throws IOException {<a name="line.1405"></a>
 <span class="sourceLineNo">1406</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1406"></a>
 <span class="sourceLineNo">1407</span>      @Override<a name="line.1407"></a>
 <span class="sourceLineNo">1408</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>        observer.preAddReplicationPeer(this, peerId, peerConfig);<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      }<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    });<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  public void postAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>      throws IOException {<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>      @Override<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        observer.postAddReplicationPeer(this, peerId, peerConfig);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>      }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    });<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  }<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span><a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>  public void preRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      @Override<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>        observer.preRemoveReplicationPeer(this, peerId);<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>      }<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>    });<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>  }<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span><a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public void postRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      @Override<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>        observer.postRemoveReplicationPeer(this, peerId);<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>      }<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    });<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>  }<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span><a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public void preEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      @Override<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>        observer.preEnableReplicationPeer(this, peerId);<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      }<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    });<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  public void postEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>      @Override<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        observer.postEnableReplicationPeer(this, peerId);<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      }<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>    });<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span><a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>  public void preDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>      @Override<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>        observer.preDisableReplicationPeer(this, peerId);<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>      }<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    });<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  }<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span><a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  public void postDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>      @Override<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>        observer.postDisableReplicationPeer(this, peerId);<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>      }<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    });<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span><a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  public void preGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>      @Override<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>        observer.preGetReplicationPeerConfig(this, peerId);<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      }<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>    });<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  }<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span><a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>  public void postGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>      @Override<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>        observer.postGetReplicationPeerConfig(this, peerId);<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      }<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    });<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>  }<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span><a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>  public void preUpdateReplicationPeerConfig(final String peerId,<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>      @Override<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>        observer.preUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>      }<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>    });<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>  }<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span><a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>  public void postUpdateReplicationPeerConfig(final String peerId,<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>      @Override<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>        observer.postUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      }<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>    });<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>  }<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span><a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>  public void preListReplicationPeers(final String regex) throws IOException {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>      @Override<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>        observer.preListReplicationPeers(this, regex);<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      }<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    });<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  public void postListReplicationPeers(final String regex) throws IOException {<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      @Override<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>        observer.postListReplicationPeers(this, regex);<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      }<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    });<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span><a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>  public void preRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>      LockType type, String description) throws IOException {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>      @Override<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>        observer.preRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      }<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    });<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  public void postRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      LockType type, String description) throws IOException {<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      @Override<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>        observer.postRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      }<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    });<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span><a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>  public void preLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>      @Override<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>        observer.preLockHeartbeat(this, proc.getTableName(), proc.getDescription());<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      }<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>    });<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  }<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span><a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>  public void postLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      @Override<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>        observer.postLockHeartbeat(this);<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      }<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    });<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>  }<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span><a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>  public void preGetClusterStatus() throws IOException {<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>      @Override<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        observer.preGetClusterStatus(this);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>      }<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>    });<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>  }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  public void postGetClusterStatus(ClusterStatus status) throws IOException {<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      @Override<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>        observer.postGetClusterStatus(this, status);<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      }<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>    });<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>  }<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span><a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>  public void preClearDeadServers() throws IOException {<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>      @Override<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>        observer.preClearDeadServers(this);<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>      }<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    });<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>  }<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span><a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>  public void postClearDeadServers(List&lt;ServerName&gt; servers,<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>      List&lt;ServerName&gt; notClearedServers) throws IOException {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>      @Override<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>        observer.postClearDeadServers(this, servers, notClearedServers);<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      }<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>    });<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>  }<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span><a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>  public void preDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>      @Override<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>        observer.preDecommissionRegionServers(this, servers, offload);<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>      }<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    });<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span><a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>  public void postDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      @Override<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>        observer.postDecommissionRegionServers(this, servers, offload);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>      }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>    });<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>  }<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span><a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  public void preListDecommissionedRegionServers() throws IOException {<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>      @Override<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>        observer.preListDecommissionedRegionServers(this);<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      }<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    });<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>  }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span><a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>  public void postListDecommissionedRegionServers() throws IOException {<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      @Override<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>        observer.postListDecommissionedRegionServers(this);<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      }<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>    });<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>  }<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span><a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>  public void preRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>      throws IOException {<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>      @Override<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        observer.preRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      }<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    });<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>  }<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span><a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  public void postRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>      throws IOException {<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>      @Override<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>        observer.postRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>      }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>    });<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>  }<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>}<a name="line.1664"></a>
+<span class="sourceLineNo">1409</span>        if(((MasterEnvironment)getEnvironment()).supportGroupCPs) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>          observer.preRemoveServers(this, servers);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>        }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      }<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>    });<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span><a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  public void postRemoveServers(final Set&lt;Address&gt; servers)<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      throws IOException {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      @Override<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>        if(((MasterEnvironment)getEnvironment()).supportGroupCPs) {<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>          observer.postRemoveServers(this, servers);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>        }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>      }<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>    });<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>  }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span><a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>  public void preAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>      throws IOException {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>      @Override<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>        observer.preAddReplicationPeer(this, peerId, peerConfig);<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>      }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>    });<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span><a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>  public void postAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>      throws IOException {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>      @Override<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>        observer.postAddReplicationPeer(this, peerId, peerConfig);<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      }<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>    });<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>  }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span><a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  public void preRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>      @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>        observer.preRemoveReplicationPeer(this, peerId);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>      }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>    });<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span><a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>  public void postRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>      @Override<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>        observer.postRemoveReplicationPeer(this, peerId);<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>      }<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>    });<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>  }<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span><a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>  public void preEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>      @Override<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>        observer.preEnableReplicationPeer(this, peerId);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      }<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>    });<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>  }<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span><a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>  public void postEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>      @Override<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>        observer.postEnableReplicationPeer(this, peerId);<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>      }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>    });<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span><a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>  public void preDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>      @Override<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>        observer.preDisableReplicationPeer(this, peerId);<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>      }<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>    });<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  }<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span><a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public void postDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>      @Override<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>        observer.postDisableReplicationPeer(this, peerId);<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>      }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>    });<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span><a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>  public void preGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>      @Override<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>        observer.preGetReplicationPeerConfig(this, peerId);<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>      }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>    });<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>  }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span><a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>  public void postGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>      @Override<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>        observer.postGetReplicationPeerConfig(this, peerId);<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>      }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>    });<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>  }<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span><a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>  public void preUpdateReplicationPeerConfig(final String peerId,<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>      @Override<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>        observer.preUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>    });<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>  }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span><a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>  public void postUpdateReplicationPeerConfig(final String peerId,<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>      @Override<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>        observer.postUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>      }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>    });<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span><a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  public void preListReplicationPeers(final String regex) throws IOException {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>      @Override<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>        observer.preListReplicationPeers(this, regex);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>      }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>    });<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>  public void postListReplicationPeers(final String regex) throws IOException {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>      @Override<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>        observer.postListReplicationPeers(this, regex);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>    });<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>  }<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span><a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>  public void preRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      LockType type, String description) throws IOException {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>      @Override<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>        observer.preRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    });<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>  }<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span><a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>  public void postRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      LockType type, String description) throws IOException {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      @Override<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>        observer.postRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    });<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>  }<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span><a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>  public void preLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      @Override<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>        observer.preLockHeartbeat(this, proc.getTableName(), proc.getDescription());<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>      }<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>    });<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>  }<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span><a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>  public void postLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>      @Override<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        observer.postLockHeartbeat(this);<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>    });<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>  }<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span><a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>  public void preGetClusterStatus() throws IOException {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>      @Override<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>        observer.preGetClusterStatus(this);<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>      }<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>    });<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>  }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>  public void postGetClusterStatus(ClusterStatus status) throws IOException {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      @Override<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        observer.postGetClusterStatus(this, status);<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>      }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>    });<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>  }<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span><a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>  public void preClearDeadServers() throws IOException {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>      @Override<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        observer.preClearDeadServers(this);<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>      }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    });<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>  }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span><a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>  public void postClearDeadServers(List&lt;ServerName&gt; servers,<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>      List&lt;ServerName&gt; notClearedServers) throws IOException {<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>      @Override<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>        observer.postClearDeadServers(this, servers, notClearedServers);<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>      }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>    });<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>  }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span><a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>  public void preDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      @Override<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>        observer.preDecommissionRegionServers(this, servers, offload);<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>      }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>    });<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>  }<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span><a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>  public void postDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>      @Override<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>        observer.postDecommissionRegionServers(this, servers, offload);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>      }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>    });<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>  }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span><a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>  public void preListDecommissionedRegionServers() throws IOException {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>      @Override<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>        observer.preListDecommissionedRegionServers(this);<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>      }<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>    });<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>  }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>  public void postListDecommissionedRegionServers() throws IOException {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>      @Override<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>        observer.postListDecommissionedRegionServers(this);<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>      }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    });<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>  }<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span><a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>  public void preRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>      throws IOException {<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>      @Override<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>        observer.preRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>      }<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    });<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span><a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>  public void postRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>      throws IOException {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>      @Override<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>        observer.postRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>      }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    });<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>  }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>}<a name="line.1688"></a>
 
 
 


[21/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
index f2eeed3..a39f905 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
@@ -29,344 +29,380 @@
 <span class="sourceLineNo">021</span>import java.io.IOException;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.util.Collections;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import java.util.HashSet;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.Optional;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.Set;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>import com.google.protobuf.RpcCallback;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import com.google.protobuf.RpcController;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import com.google.protobuf.Service;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.commons.logging.Log;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.commons.logging.LogFactory;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.CoprocessorEnvironment;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HConstants;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.TableName;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.SnapshotDescription;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.coprocessor.CoreCoprocessor;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.coprocessor.HasMasterServices;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessor;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.coprocessor.MasterObserver;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.net.Address;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupRequest;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupResponse;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupRequest;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupResponse;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerRequest;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerResponse;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfTableRequest;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfTableResponse;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoRequest;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoResponse;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosRequest;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosResponse;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesRequest;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesResponse;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersRequest;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersResponse;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesRequest;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesResponse;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupRequest;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupResponse;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>// TODO: Encapsulate MasterObserver functions into separate subclass.<a name="line.76"></a>
-<span class="sourceLineNo">077</span>@CoreCoprocessor<a name="line.77"></a>
-<span class="sourceLineNo">078</span>@InterfaceAudience.Private<a name="line.78"></a>
-<span class="sourceLineNo">079</span>public class RSGroupAdminEndpoint implements MasterCoprocessor, MasterObserver {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static final Log LOG = LogFactory.getLog(RSGroupAdminEndpoint.class);<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private MasterServices master = null;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  // Only instance of RSGroupInfoManager. RSGroup aware load balancers ask for this instance on<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  // their setup.<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  private RSGroupInfoManager groupInfoManager;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private RSGroupAdminServer groupAdminServer;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private final RSGroupAdminService groupAdminService = new RSGroupAdminServiceImpl();<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  @Override<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    if (!(env instanceof HasMasterServices)) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      throw new IOException("Does not implement HMasterServices");<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    }<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    master = ((HasMasterServices)env).getMasterServices();<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    groupInfoManager = RSGroupInfoManagerImpl.getInstance(master);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    groupAdminServer = new RSGroupAdminServer(master, groupInfoManager);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    Class&lt;?&gt; clazz =<a name="line.97"></a>
-<span class="sourceLineNo">098</span>        master.getConfiguration().getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, null);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    if (!RSGroupableBalancer.class.isAssignableFrom(clazz)) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      throw new IOException("Configured balancer does not support RegionServer groups.");<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>  @Override<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  public Iterable&lt;Service&gt; getServices() {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    return Collections.singleton(groupAdminService);<a name="line.106"></a>
+<span class="sourceLineNo">024</span>import java.util.List;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.Optional;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.Set;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.stream.Collectors;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>import com.google.protobuf.RpcCallback;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import com.google.protobuf.RpcController;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import com.google.protobuf.Service;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.commons.logging.Log;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.commons.logging.LogFactory;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.CoprocessorEnvironment;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HConstants;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.ServerName;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.TableName;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.client.SnapshotDescription;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.coprocessor.CoreCoprocessor;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.coprocessor.HasMasterServices;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.coprocessor.MasterObserver;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.net.Address;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.protobuf.ProtobufUtil;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupRequest;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupResponse;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupRequest;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupResponse;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerRequest;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerResponse;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfTableRequest;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfTableResponse;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoRequest;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoResponse;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosRequest;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosResponse;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesRequest;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesResponse;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersRequest;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersResponse;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesRequest;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesResponse;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupRequest;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupResponse;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersRequest;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersResponse;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>// TODO: Encapsulate MasterObserver functions into separate subclass.<a name="line.81"></a>
+<span class="sourceLineNo">082</span>@CoreCoprocessor<a name="line.82"></a>
+<span class="sourceLineNo">083</span>@InterfaceAudience.Private<a name="line.83"></a>
+<span class="sourceLineNo">084</span>public class RSGroupAdminEndpoint implements MasterCoprocessor, MasterObserver {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private static final Log LOG = LogFactory.getLog(RSGroupAdminEndpoint.class);<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>  private MasterServices master = null;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  // Only instance of RSGroupInfoManager. RSGroup aware load balancers ask for this instance on<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  // their setup.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  private RSGroupInfoManager groupInfoManager;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  private RSGroupAdminServer groupAdminServer;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  private final RSGroupAdminService groupAdminService = new RSGroupAdminServiceImpl();<a name="line.92"></a>
+<span class="sourceLineNo">093</span><a name="line.93"></a>
+<span class="sourceLineNo">094</span>  @Override<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    if (!(env instanceof HasMasterServices)) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      throw new IOException("Does not implement HMasterServices");<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    master = ((HasMasterServices)env).getMasterServices();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    groupInfoManager = RSGroupInfoManagerImpl.getInstance(master);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    groupAdminServer = new RSGroupAdminServer(master, groupInfoManager);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    Class&lt;?&gt; clazz =<a name="line.102"></a>
+<span class="sourceLineNo">103</span>        master.getConfiguration().getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, null);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    if (!RSGroupableBalancer.class.isAssignableFrom(clazz)) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      throw new IOException("Configured balancer does not support RegionServer groups.");<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
 <span class="sourceLineNo">107</span>  }<a name="line.107"></a>
 <span class="sourceLineNo">108</span><a name="line.108"></a>
 <span class="sourceLineNo">109</span>  @Override<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  public Optional&lt;MasterObserver&gt; getMasterObserver() {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    return Optional.of(this);<a name="line.111"></a>
+<span class="sourceLineNo">110</span>  public Iterable&lt;Service&gt; getServices() {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    return Collections.singleton(groupAdminService);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>  }<a name="line.112"></a>
 <span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>  RSGroupInfoManager getGroupInfoManager() {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    return groupInfoManager;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * Implementation of RSGroupAdminService defined in RSGroupAdmin.proto.<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   * This class calls {@link RSGroupAdminServer} for actual work, converts result to protocol<a name="line.120"></a>
-<span class="sourceLineNo">121</span>   * buffer response, handles exceptions if any occurred and then calls the {@code RpcCallback} with<a name="line.121"></a>
-<span class="sourceLineNo">122</span>   * the response.<a name="line.122"></a>
-<span class="sourceLineNo">123</span>   */<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  private class RSGroupAdminServiceImpl extends RSGroupAdminProtos.RSGroupAdminService {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    @Override<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    public void getRSGroupInfo(RpcController controller,<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        GetRSGroupInfoRequest request, RpcCallback&lt;GetRSGroupInfoResponse&gt; done) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      GetRSGroupInfoResponse.Builder builder = GetRSGroupInfoResponse.newBuilder();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      String groupName = request.getRSGroupName();<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, group="<a name="line.130"></a>
-<span class="sourceLineNo">131</span>              + groupName);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      try {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        if (rsGroupInfo != null) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(rsGroupInfo));<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      } catch (IOException e) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      }<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      done.run(builder.build());<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span>    @Override<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    public void getRSGroupInfoOfTable(RpcController controller,<a name="line.144"></a>
-<span class="sourceLineNo">145</span>        GetRSGroupInfoOfTableRequest request, RpcCallback&lt;GetRSGroupInfoOfTableResponse&gt; done) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      GetRSGroupInfoOfTableResponse.Builder builder = GetRSGroupInfoOfTableResponse.newBuilder();<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      try {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, table="<a name="line.149"></a>
-<span class="sourceLineNo">150</span>                + tableName);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>        RSGroupInfo RSGroupInfo = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        if (RSGroupInfo != null) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.153"></a>
-<span class="sourceLineNo">154</span>        }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>      } catch (IOException e) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      done.run(builder.build());<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>    @Override<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    public void moveServers(RpcController controller, MoveServersRequest request,<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        RpcCallback&lt;MoveServersResponse&gt; done) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      MoveServersResponse.Builder builder = MoveServersResponse.newBuilder();<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      try {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>          hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts +" to rsgroup "<a name="line.170"></a>
-<span class="sourceLineNo">171</span>                + request.getTargetGroup());<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        groupAdminServer.moveServers(hostPorts, request.getTargetGroup());<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      } catch (IOException e) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      }<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      done.run(builder.build());<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>    @Override<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    public void moveTables(RpcController controller, MoveTablesRequest request,<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        RpcCallback&lt;MoveTablesResponse&gt; done) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      MoveTablesResponse.Builder builder = MoveTablesResponse.newBuilder();<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      try {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>          tables.add(ProtobufUtil.toTableName(tableName));<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        LOG.info(master.getClientIdAuditPrefix() + " move tables " + tables +" to rsgroup "<a name="line.188"></a>
-<span class="sourceLineNo">189</span>                + request.getTargetGroup());<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        groupAdminServer.moveTables(tables, request.getTargetGroup());<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      } catch (IOException e) {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      done.run(builder.build());<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>    @Override<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    public void addRSGroup(RpcController controller, AddRSGroupRequest request,<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        RpcCallback&lt;AddRSGroupResponse&gt; done) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      AddRSGroupResponse.Builder builder = AddRSGroupResponse.newBuilder();<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      LOG.info(master.getClientIdAuditPrefix() + " add rsgroup " + request.getRSGroupName());<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      try {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        groupAdminServer.addRSGroup(request.getRSGroupName());<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      } catch (IOException e) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      done.run(builder.build());<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>    @Override<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    public void removeRSGroup(RpcController controller,<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        RemoveRSGroupRequest request, RpcCallback&lt;RemoveRSGroupResponse&gt; done) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      RemoveRSGroupResponse.Builder builder =<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          RemoveRSGroupResponse.newBuilder();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      LOG.info(master.getClientIdAuditPrefix() + " remove rsgroup " + request.getRSGroupName());<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      try {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        groupAdminServer.removeRSGroup(request.getRSGroupName());<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      } catch (IOException e) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      }<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      done.run(builder.build());<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>    @Override<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    public void balanceRSGroup(RpcController controller,<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        BalanceRSGroupRequest request, RpcCallback&lt;BalanceRSGroupResponse&gt; done) {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      BalanceRSGroupResponse.Builder builder = BalanceRSGroupResponse.newBuilder();<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      LOG.info(master.getClientIdAuditPrefix() + " balance rsgroup, group=" + request.getRSGroupName());<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      try {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        builder.setBalanceRan(groupAdminServer.balanceRSGroup(request.getRSGroupName()));<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      } catch (IOException e) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        builder.setBalanceRan(false);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      }<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      done.run(builder.build());<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    @Override<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public void listRSGroupInfos(RpcController controller,<a name="line.239"></a>
-<span class="sourceLineNo">240</span>        ListRSGroupInfosRequest request, RpcCallback&lt;ListRSGroupInfosResponse&gt; done) {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      ListRSGroupInfosResponse.Builder builder = ListRSGroupInfosResponse.newBuilder();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      LOG.info(master.getClientIdAuditPrefix() + " list rsgroup");<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      try {<a name="line.243"></a>
-<span class="sourceLineNo">244</span>        for (RSGroupInfo RSGroupInfo : groupAdminServer.listRSGroups()) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>          builder.addRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.245"></a>
-<span class="sourceLineNo">246</span>        }<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      } catch (IOException e) {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      done.run(builder.build());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    @Override<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    public void getRSGroupInfoOfServer(RpcController controller,<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        GetRSGroupInfoOfServerRequest request, RpcCallback&lt;GetRSGroupInfoOfServerResponse&gt; done) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      GetRSGroupInfoOfServerResponse.Builder builder = GetRSGroupInfoOfServerResponse.newBuilder();<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      try {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        Address hp = Address.fromParts(request.getServer().getHostName(),<a name="line.258"></a>
-<span class="sourceLineNo">259</span>            request.getServer().getPort());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>        LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, server=" + hp);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        RSGroupInfo RSGroupInfo = groupAdminServer.getRSGroupOfServer(hp);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>        if (RSGroupInfo != null) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      } catch (IOException e) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      done.run(builder.build());<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    }<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>    @Override<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    public void moveServersAndTables(RpcController controller,<a name="line.272"></a>
-<span class="sourceLineNo">273</span>        MoveServersAndTablesRequest request, RpcCallback&lt;MoveServersAndTablesResponse&gt; done) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      MoveServersAndTablesResponse.Builder builder = MoveServersAndTablesResponse.newBuilder();<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      try {<a name="line.275"></a>
-<span class="sourceLineNo">276</span>        Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>          hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>        for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>          tables.add(ProtobufUtil.toTableName(tableName));<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
-<span class="sourceLineNo">284</span>        LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts<a name="line.284"></a>
-<span class="sourceLineNo">285</span>                + " and tables " + tables + " to rsgroup" + request.getTargetGroup());<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        groupAdminServer.moveServersAndTables(hostPorts, tables, request.getTargetGroup());<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      } catch (IOException e) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      }<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      done.run(builder.build());<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  void assignTableToGroup(TableDescriptor desc) throws IOException {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    String groupName =<a name="line.295"></a>
-<span class="sourceLineNo">296</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.296"></a>
-<span class="sourceLineNo">297</span>                .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (groupName == null) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    if (rsGroupInfo == null) {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      throw new ConstraintException("Default RSGroup (" + groupName + ") for this table's "<a name="line.303"></a>
-<span class="sourceLineNo">304</span>          + "namespace does not exist.");<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    }<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    if (!rsGroupInfo.containsTable(desc.getTableName())) {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      LOG.debug("Pre-moving table " + desc.getTableName() + " to RSGroup " + groupName);<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      groupAdminServer.moveTables(Sets.newHashSet(desc.getTableName()), groupName);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    }<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  // MasterObserver overrides<a name="line.313"></a>
-<span class="sourceLineNo">314</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  // Assign table to default RSGroup.<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  @Override<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      TableDescriptor desc, RegionInfo[] regions) throws IOException {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    assignTableToGroup(desc);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  // Remove table from its RSGroup.<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  @Override<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                              TableName tableName) throws IOException {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    try {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      RSGroupInfo group = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      if (group != null) {<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        LOG.debug(String.format("Removing deleted table '%s' from rsgroup '%s'", tableName,<a name="line.330"></a>
-<span class="sourceLineNo">331</span>            group.getName()));<a name="line.331"></a>
-<span class="sourceLineNo">332</span>        groupAdminServer.moveTables(Sets.newHashSet(tableName), null);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    } catch (IOException ex) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      LOG.debug("Failed to perform RSGroup information cleanup for table: " + tableName, ex);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>  @Override<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  public void preCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.340"></a>
-<span class="sourceLineNo">341</span>                                 NamespaceDescriptor ns) throws IOException {<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    String group = ns.getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    if(group != null &amp;&amp; groupAdminServer.getRSGroupInfo(group) == null) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>      throw new ConstraintException("Region server group "+group+" does not exit");<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
+<span class="sourceLineNo">114</span>  @Override<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public Optional&lt;MasterObserver&gt; getMasterObserver() {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    return Optional.of(this);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  RSGroupInfoManager getGroupInfoManager() {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    return groupInfoManager;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  /**<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * Implementation of RSGroupAdminService defined in RSGroupAdmin.proto.<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * This class calls {@link RSGroupAdminServer} for actual work, converts result to protocol<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * buffer response, handles exceptions if any occurred and then calls the {@code RpcCallback} with<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * the response.<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  private class RSGroupAdminServiceImpl extends RSGroupAdminProtos.RSGroupAdminService {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    @Override<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void getRSGroupInfo(RpcController controller,<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        GetRSGroupInfoRequest request, RpcCallback&lt;GetRSGroupInfoResponse&gt; done) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      GetRSGroupInfoResponse.Builder builder = GetRSGroupInfoResponse.newBuilder();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      String groupName = request.getRSGroupName();<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, group="<a name="line.135"></a>
+<span class="sourceLineNo">136</span>              + groupName);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      try {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        if (rsGroupInfo != null) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(rsGroupInfo));<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      } catch (IOException e) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      done.run(builder.build());<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>    @Override<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    public void getRSGroupInfoOfTable(RpcController controller,<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        GetRSGroupInfoOfTableRequest request, RpcCallback&lt;GetRSGroupInfoOfTableResponse&gt; done) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      GetRSGroupInfoOfTableResponse.Builder builder = GetRSGroupInfoOfTableResponse.newBuilder();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      try {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        TableName tableName = ProtobufUtil.toTableName(request.getTableName());<a name="line.153"></a>
+<span class="sourceLineNo">154</span>        LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, table="<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                + tableName);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        RSGroupInfo RSGroupInfo = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        if (RSGroupInfo != null) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      } catch (IOException e) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      done.run(builder.build());<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>    @Override<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    public void moveServers(RpcController controller, MoveServersRequest request,<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        RpcCallback&lt;MoveServersResponse&gt; done) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      MoveServersResponse.Builder builder = MoveServersResponse.newBuilder();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      try {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>          hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts +" to rsgroup "<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                + request.getTargetGroup());<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        groupAdminServer.moveServers(hostPorts, request.getTargetGroup());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      } catch (IOException e) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      done.run(builder.build());<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>    @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    public void moveTables(RpcController controller, MoveTablesRequest request,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        RpcCallback&lt;MoveTablesResponse&gt; done) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      MoveTablesResponse.Builder builder = MoveTablesResponse.newBuilder();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      try {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          tables.add(ProtobufUtil.toTableName(tableName));<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        LOG.info(master.getClientIdAuditPrefix() + " move tables " + tables +" to rsgroup "<a name="line.193"></a>
+<span class="sourceLineNo">194</span>                + request.getTargetGroup());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        groupAdminServer.moveTables(tables, request.getTargetGroup());<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      } catch (IOException e) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      }<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      done.run(builder.build());<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    @Override<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    public void addRSGroup(RpcController controller, AddRSGroupRequest request,<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        RpcCallback&lt;AddRSGroupResponse&gt; done) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      AddRSGroupResponse.Builder builder = AddRSGroupResponse.newBuilder();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      LOG.info(master.getClientIdAuditPrefix() + " add rsgroup " + request.getRSGroupName());<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      try {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>        groupAdminServer.addRSGroup(request.getRSGroupName());<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      } catch (IOException e) {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      }<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      done.run(builder.build());<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    }<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>    @Override<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void removeRSGroup(RpcController controller,<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        RemoveRSGroupRequest request, RpcCallback&lt;RemoveRSGroupResponse&gt; done) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      RemoveRSGroupResponse.Builder builder =<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          RemoveRSGroupResponse.newBuilder();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      LOG.info(master.getClientIdAuditPrefix() + " remove rsgroup " + request.getRSGroupName());<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        groupAdminServer.removeRSGroup(request.getRSGroupName());<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      } catch (IOException e) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      }<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      done.run(builder.build());<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    }<a name="line.227"></a>
+<span class="sourceLineNo">228</span><a name="line.228"></a>
+<span class="sourceLineNo">229</span>    @Override<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    public void balanceRSGroup(RpcController controller,<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        BalanceRSGroupRequest request, RpcCallback&lt;BalanceRSGroupResponse&gt; done) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      BalanceRSGroupResponse.Builder builder = BalanceRSGroupResponse.newBuilder();<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      LOG.info(master.getClientIdAuditPrefix() + " balance rsgroup, group=" + request.getRSGroupName());<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      try {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        builder.setBalanceRan(groupAdminServer.balanceRSGroup(request.getRSGroupName()));<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      } catch (IOException e) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        builder.setBalanceRan(false);<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      }<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      done.run(builder.build());<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>    @Override<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public void listRSGroupInfos(RpcController controller,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        ListRSGroupInfosRequest request, RpcCallback&lt;ListRSGroupInfosResponse&gt; done) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      ListRSGroupInfosResponse.Builder builder = ListRSGroupInfosResponse.newBuilder();<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      LOG.info(master.getClientIdAuditPrefix() + " list rsgroup");<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      try {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        for (RSGroupInfo RSGroupInfo : groupAdminServer.listRSGroups()) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>          builder.addRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      } catch (IOException e) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      }<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      done.run(builder.build());<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>    @Override<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    public void getRSGroupInfoOfServer(RpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        GetRSGroupInfoOfServerRequest request, RpcCallback&lt;GetRSGroupInfoOfServerResponse&gt; done) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      GetRSGroupInfoOfServerResponse.Builder builder = GetRSGroupInfoOfServerResponse.newBuilder();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      try {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        Address hp = Address.fromParts(request.getServer().getHostName(),<a name="line.263"></a>
+<span class="sourceLineNo">264</span>            request.getServer().getPort());<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        LOG.info(master.getClientIdAuditPrefix() + " initiates rsgroup info retrieval, server=" + hp);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>        RSGroupInfo RSGroupInfo = groupAdminServer.getRSGroupOfServer(hp);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (RSGroupInfo != null) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          builder.setRSGroupInfo(RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo));<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      } catch (IOException e) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      done.run(builder.build());<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span>    @Override<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    public void moveServersAndTables(RpcController controller,<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        MoveServersAndTablesRequest request, RpcCallback&lt;MoveServersAndTablesResponse&gt; done) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      MoveServersAndTablesResponse.Builder builder = MoveServersAndTablesResponse.newBuilder();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      try {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        Set&lt;Address&gt; hostPorts = Sets.newHashSet();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>          hostPorts.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        Set&lt;TableName&gt; tables = new HashSet&lt;&gt;(request.getTableNameList().size());<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        for (HBaseProtos.TableName tableName : request.getTableNameList()) {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>          tables.add(ProtobufUtil.toTableName(tableName));<a name="line.287"></a>
+<span class="sourceLineNo">288</span>        }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        LOG.info(master.getClientIdAuditPrefix() + " move servers " + hostPorts<a name="line.289"></a>
+<span class="sourceLineNo">290</span>                + " and tables " + tables + " to rsgroup" + request.getTargetGroup());<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        groupAdminServer.moveServersAndTables(hostPorts, tables, request.getTargetGroup());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      } catch (IOException e) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      }<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      done.run(builder.build());<a name="line.295"></a>
+<span class="sourceLineNo">296</span>    }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span>    @Override<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    public void removeServers(RpcController controller,<a name="line.299"></a>
+<span class="sourceLineNo">300</span>        RemoveServersRequest request,<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        RpcCallback&lt;RemoveServersResponse&gt; done) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      RemoveServersResponse.Builder builder =<a name="line.302"></a>
+<span class="sourceLineNo">303</span>          RemoveServersResponse.newBuilder();<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      try {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        Set&lt;Address&gt; servers = Sets.newHashSet();<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        for (HBaseProtos.ServerName el : request.getServersList()) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>          servers.add(Address.fromParts(el.getHostName(), el.getPort()));<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        }<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        LOG.info(master.getClientIdAuditPrefix()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>            + " remove decommissioned servers from rsgroup: " + servers);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        groupAdminServer.removeServers(servers);<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      } catch (IOException e) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        CoprocessorRpcUtils.setControllerException(controller, e);<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      }<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      done.run(builder.build());<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  }<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span>  void assignTableToGroup(TableDescriptor desc) throws IOException {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    String groupName =<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString())<a name="line.321"></a>
+<span class="sourceLineNo">322</span>                .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    if (groupName == null) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      groupName = RSGroupInfo.DEFAULT_GROUP;<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    RSGroupInfo rsGroupInfo = groupAdminServer.getRSGroupInfo(groupName);<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    if (rsGroupInfo == null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      throw new ConstraintException("Default RSGroup (" + groupName + ") for this table's "<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          + "namespace does not exist.");<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    if (!rsGroupInfo.containsTable(desc.getTableName())) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      LOG.debug("Pre-moving table " + desc.getTableName() + " to RSGroup " + groupName);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      groupAdminServer.moveTables(Sets.newHashSet(desc.getTableName()), groupName);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  // MasterObserver overrides<a name="line.338"></a>
+<span class="sourceLineNo">339</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  // Assign table to default RSGroup.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  public void preCreateTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      TableDescriptor desc, RegionInfo[] regions) throws IOException {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    assignTableToGroup(desc);<a name="line.345"></a>
 <span class="sourceLineNo">346</span>  }<a name="line.346"></a>
 <span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>  @Override<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  public void preModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      NamespaceDescriptor ns) throws IOException {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    preCreateNamespace(ctx, ns);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>  }<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>  @Override<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  public void preCloneSnapshot(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      SnapshotDescription snapshot, TableDescriptor desc) throws IOException {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    assignTableToGroup(desc);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.360"></a>
-<span class="sourceLineNo">361</span>}<a name="line.361"></a>
+<span class="sourceLineNo">348</span>  // Remove table from its RSGroup.<a name="line.348"></a>
+<span class="sourceLineNo">349</span>  @Override<a name="line.349"></a>
+<span class="sourceLineNo">350</span>  public void postDeleteTable(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.350"></a>
+<span class="sourceLineNo">351</span>                              TableName tableName) throws IOException {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      RSGroupInfo group = groupAdminServer.getRSGroupInfoOfTable(tableName);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      if (group != null) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        LOG.debug(String.format("Removing deleted table '%s' from rsgroup '%s'", tableName,<a name="line.355"></a>
+<span class="sourceLineNo">356</span>            group.getName()));<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        groupAdminServer.moveTables(Sets.newHashSet(tableName), null);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    } catch (IOException ex) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      LOG.debug("Failed to perform RSGroup information cleanup for table: " + tableName, ex);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span>  }<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>  @Override<a name="line.364"></a>
+<span class="sourceLineNo">365</span>  public void preCreateNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.365"></a>
+<span class="sourceLineNo">366</span>                                 NamespaceDescriptor ns) throws IOException {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    String group = ns.getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    if(group != null &amp;&amp; groupAdminServer.getRSGroupInfo(group) == null) {<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      throw new ConstraintException("Region server group "+group+" does not exit");<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    }<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  @Override<a name="line.373"></a>
+<span class="sourceLineNo">374</span>  public void preModifyNamespace(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      NamespaceDescriptor ns) throws IOException {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    preCreateNamespace(ctx, ns);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  public void preCloneSnapshot(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.380"></a>
+<span class="sourceLineNo">381</span>      SnapshotDescription snapshot, TableDescriptor desc) throws IOException {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    assignTableToGroup(desc);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  }<a name="line.383"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
+<span class="sourceLineNo">386</span>  public void postClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      List&lt;ServerName&gt; servers, List&lt;ServerName&gt; notClearedServers)<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      throws IOException {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    Set&lt;Address&gt; clearedServer = servers.stream().<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        filter(server -&gt; !notClearedServers.contains(server)).<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        map(ServerName::getAddress).<a name="line.391"></a>
+<span class="sourceLineNo">392</span>        collect(Collectors.toSet());<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    groupAdminServer.removeServers(clearedServer);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>  /////////////////////////////////////////////////////////////////////////////<a name="line.396"></a>
+<span class="sourceLineNo">397</span>}<a name="line.397"></a>
 
 
 


[23/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html
index 03f5c1d..97675b0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html
@@ -25,94 +25,94 @@
 <span class="sourceLineNo">017</span> */<a name="line.17"></a>
 <span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.regionserver.wal;<a name="line.18"></a>
 <span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.hadoop.hbase.shaded.com.google.common.base.Throwables;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.Channel;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.io.InterruptedIOException;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.io.OutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.nio.ByteBuffer;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.concurrent.CompletableFuture;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.concurrent.ExecutionException;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.function.Consumer;<a name="line.31"></a>
-<span class="sourceLineNo">032</span><a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.commons.logging.Log;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.commons.logging.LogFactory;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.fs.FileSystem;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.fs.Path;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.Cell;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.io.ByteBufferWriter;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutput;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutputHelper;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.wal.AsyncFSWALProvider;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.wal.WAL.Entry;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>/**<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * AsyncWriter for protobuf-based WAL.<a name="line.49"></a>
-<span class="sourceLineNo">050</span> */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>@InterfaceAudience.Private<a name="line.51"></a>
-<span class="sourceLineNo">052</span>public class AsyncProtobufLogWriter extends AbstractProtobufLogWriter<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    implements AsyncFSWALProvider.AsyncWriter {<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private static final Log LOG = LogFactory.getLog(AsyncProtobufLogWriter.class);<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private final EventLoop eventLoop;<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private final Class&lt;? extends Channel&gt; channelClass;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  private AsyncFSOutput output;<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private static final class OutputStreamWrapper extends OutputStream<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      implements ByteBufferWriter {<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>    private final AsyncFSOutput out;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>    private final byte[] oneByteBuf = new byte[1];<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @Override<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    public void write(int b) throws IOException {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      oneByteBuf[0] = (byte) b;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      write(oneByteBuf);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    }<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>    public OutputStreamWrapper(AsyncFSOutput out) {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      this.out = out;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>    @Override<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    public void write(ByteBuffer b, int off, int len) throws IOException {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      ByteBuffer bb = b.duplicate();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      bb.position(off);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      bb.limit(off + len);<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      out.write(bb);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>    @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    public void writeInt(int i) throws IOException {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      out.writeInt(i);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>    @Override<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    public void write(byte[] b, int off, int len) throws IOException {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      out.write(b, off, len);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>    @Override<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    public void close() throws IOException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      out.close();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>  private OutputStream asyncOutputWrapper;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public AsyncProtobufLogWriter(EventLoop eventLoop, Class&lt;? extends Channel&gt; channelClass) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    this.eventLoop = eventLoop;<a name="line.107"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.io.InterruptedIOException;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.io.OutputStream;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.nio.ByteBuffer;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.concurrent.CompletableFuture;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.concurrent.ExecutionException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.function.Consumer;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.commons.logging.Log;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.commons.logging.LogFactory;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.fs.FileSystem;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.Path;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.Cell;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.io.ByteBufferWriter;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutput;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutputHelper;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.wal.AsyncFSWALProvider;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.wal.WAL.Entry;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.shaded.com.google.common.base.Throwables;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.Channel;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer;<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>/**<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * AsyncWriter for protobuf-based WAL.<a name="line.48"></a>
+<span class="sourceLineNo">049</span> */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>@InterfaceAudience.Private<a name="line.50"></a>
+<span class="sourceLineNo">051</span>public class AsyncProtobufLogWriter extends AbstractProtobufLogWriter<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    implements AsyncFSWALProvider.AsyncWriter {<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  private static final Log LOG = LogFactory.getLog(AsyncProtobufLogWriter.class);<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private final EventLoopGroup eventLoopGroup;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private final Class&lt;? extends Channel&gt; channelClass;<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  private AsyncFSOutput output;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private static final class OutputStreamWrapper extends OutputStream<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      implements ByteBufferWriter {<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>    private final AsyncFSOutput out;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>    private final byte[] oneByteBuf = new byte[1];<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @Override<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    public void write(int b) throws IOException {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      oneByteBuf[0] = (byte) b;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      write(oneByteBuf);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>    public OutputStreamWrapper(AsyncFSOutput out) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      this.out = out;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>    @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    public void write(ByteBuffer b, int off, int len) throws IOException {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      ByteBuffer bb = b.duplicate();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      bb.position(off);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      bb.limit(off + len);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      out.write(bb);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>    @Override<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    public void writeInt(int i) throws IOException {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      out.writeInt(i);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    }<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    @Override<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    public void write(byte[] b, int off, int len) throws IOException {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      out.write(b, off, len);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>    @Override<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    public void close() throws IOException {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      out.close();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private OutputStream asyncOutputWrapper;<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public AsyncProtobufLogWriter(EventLoopGroup eventLoopGroup,<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      Class&lt;? extends Channel&gt; channelClass) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    this.eventLoopGroup = eventLoopGroup;<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    this.channelClass = channelClass;<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  }<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
@@ -164,13 +164,13 @@
 <span class="sourceLineNo">156</span>  protected void initOutput(FileSystem fs, Path path, boolean overwritable, int bufferSize,<a name="line.156"></a>
 <span class="sourceLineNo">157</span>      short replication, long blockSize) throws IOException, StreamLacksCapabilityException {<a name="line.157"></a>
 <span class="sourceLineNo">158</span>    this.output = AsyncFSOutputHelper.createOutput(fs, path, overwritable, false, replication,<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        blockSize, eventLoop, channelClass);<a name="line.159"></a>
+<span class="sourceLineNo">159</span>        blockSize, eventLoopGroup, channelClass);<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    this.asyncOutputWrapper = new OutputStreamWrapper(output);<a name="line.160"></a>
 <span class="sourceLineNo">161</span>  }<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
 <span class="sourceLineNo">163</span>  private long write(Consumer&lt;CompletableFuture&lt;Long&gt;&gt; action) throws IOException {<a name="line.163"></a>
 <span class="sourceLineNo">164</span>    CompletableFuture&lt;Long&gt; future = new CompletableFuture&lt;&gt;();<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    eventLoop.execute(() -&gt; action.accept(future));<a name="line.165"></a>
+<span class="sourceLineNo">165</span>    action.accept(future);<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    try {<a name="line.166"></a>
 <span class="sourceLineNo">167</span>      return future.get().longValue();<a name="line.167"></a>
 <span class="sourceLineNo">168</span>    } catch (InterruptedException e) {<a name="line.168"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
index 03f5c1d..97675b0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
@@ -25,94 +25,94 @@
 <span class="sourceLineNo">017</span> */<a name="line.17"></a>
 <span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.regionserver.wal;<a name="line.18"></a>
 <span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.hadoop.hbase.shaded.com.google.common.base.Throwables;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.Channel;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.io.InterruptedIOException;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.io.OutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.nio.ByteBuffer;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.concurrent.CompletableFuture;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.concurrent.ExecutionException;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.function.Consumer;<a name="line.31"></a>
-<span class="sourceLineNo">032</span><a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.commons.logging.Log;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.commons.logging.LogFactory;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.fs.FileSystem;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.fs.Path;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.Cell;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.io.ByteBufferWriter;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutput;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutputHelper;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.wal.AsyncFSWALProvider;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.wal.WAL.Entry;<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>/**<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * AsyncWriter for protobuf-based WAL.<a name="line.49"></a>
-<span class="sourceLineNo">050</span> */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>@InterfaceAudience.Private<a name="line.51"></a>
-<span class="sourceLineNo">052</span>public class AsyncProtobufLogWriter extends AbstractProtobufLogWriter<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    implements AsyncFSWALProvider.AsyncWriter {<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private static final Log LOG = LogFactory.getLog(AsyncProtobufLogWriter.class);<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private final EventLoop eventLoop;<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private final Class&lt;? extends Channel&gt; channelClass;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  private AsyncFSOutput output;<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private static final class OutputStreamWrapper extends OutputStream<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      implements ByteBufferWriter {<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>    private final AsyncFSOutput out;<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>    private final byte[] oneByteBuf = new byte[1];<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @Override<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    public void write(int b) throws IOException {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      oneByteBuf[0] = (byte) b;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      write(oneByteBuf);<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    }<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>    public OutputStreamWrapper(AsyncFSOutput out) {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      this.out = out;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>    @Override<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    public void write(ByteBuffer b, int off, int len) throws IOException {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      ByteBuffer bb = b.duplicate();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      bb.position(off);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      bb.limit(off + len);<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      out.write(bb);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>    @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    public void writeInt(int i) throws IOException {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>      out.writeInt(i);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>    @Override<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    public void write(byte[] b, int off, int len) throws IOException {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      out.write(b, off, len);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    }<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>    @Override<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    public void close() throws IOException {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>      out.close();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>  private OutputStream asyncOutputWrapper;<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public AsyncProtobufLogWriter(EventLoop eventLoop, Class&lt;? extends Channel&gt; channelClass) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    this.eventLoop = eventLoop;<a name="line.107"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.io.InterruptedIOException;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.io.OutputStream;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.nio.ByteBuffer;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.concurrent.CompletableFuture;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.concurrent.ExecutionException;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.function.Consumer;<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.commons.logging.Log;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.commons.logging.LogFactory;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.fs.FileSystem;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.Path;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.Cell;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.io.ByteBufferWriter;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutput;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutputHelper;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.util.CommonFSUtils.StreamLacksCapabilityException;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.wal.AsyncFSWALProvider;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.wal.WAL.Entry;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.shaded.com.google.common.base.Throwables;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.Channel;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer;<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>/**<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * AsyncWriter for protobuf-based WAL.<a name="line.48"></a>
+<span class="sourceLineNo">049</span> */<a name="line.49"></a>
+<span class="sourceLineNo">050</span>@InterfaceAudience.Private<a name="line.50"></a>
+<span class="sourceLineNo">051</span>public class AsyncProtobufLogWriter extends AbstractProtobufLogWriter<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    implements AsyncFSWALProvider.AsyncWriter {<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  private static final Log LOG = LogFactory.getLog(AsyncProtobufLogWriter.class);<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private final EventLoopGroup eventLoopGroup;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private final Class&lt;? extends Channel&gt; channelClass;<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  private AsyncFSOutput output;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private static final class OutputStreamWrapper extends OutputStream<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      implements ByteBufferWriter {<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>    private final AsyncFSOutput out;<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>    private final byte[] oneByteBuf = new byte[1];<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @Override<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    public void write(int b) throws IOException {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      oneByteBuf[0] = (byte) b;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      write(oneByteBuf);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>    public OutputStreamWrapper(AsyncFSOutput out) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      this.out = out;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>    @Override<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    public void write(ByteBuffer b, int off, int len) throws IOException {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      ByteBuffer bb = b.duplicate();<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      bb.position(off);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      bb.limit(off + len);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      out.write(bb);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>    @Override<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    public void writeInt(int i) throws IOException {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      out.writeInt(i);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    }<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    @Override<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    public void write(byte[] b, int off, int len) throws IOException {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      out.write(b, off, len);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>    @Override<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    public void close() throws IOException {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      out.close();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private OutputStream asyncOutputWrapper;<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>  public AsyncProtobufLogWriter(EventLoopGroup eventLoopGroup,<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      Class&lt;? extends Channel&gt; channelClass) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    this.eventLoopGroup = eventLoopGroup;<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    this.channelClass = channelClass;<a name="line.108"></a>
 <span class="sourceLineNo">109</span>  }<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
@@ -164,13 +164,13 @@
 <span class="sourceLineNo">156</span>  protected void initOutput(FileSystem fs, Path path, boolean overwritable, int bufferSize,<a name="line.156"></a>
 <span class="sourceLineNo">157</span>      short replication, long blockSize) throws IOException, StreamLacksCapabilityException {<a name="line.157"></a>
 <span class="sourceLineNo">158</span>    this.output = AsyncFSOutputHelper.createOutput(fs, path, overwritable, false, replication,<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        blockSize, eventLoop, channelClass);<a name="line.159"></a>
+<span class="sourceLineNo">159</span>        blockSize, eventLoopGroup, channelClass);<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    this.asyncOutputWrapper = new OutputStreamWrapper(output);<a name="line.160"></a>
 <span class="sourceLineNo">161</span>  }<a name="line.161"></a>
 <span class="sourceLineNo">162</span><a name="line.162"></a>
 <span class="sourceLineNo">163</span>  private long write(Consumer&lt;CompletableFuture&lt;Long&gt;&gt; action) throws IOException {<a name="line.163"></a>
 <span class="sourceLineNo">164</span>    CompletableFuture&lt;Long&gt; future = new CompletableFuture&lt;&gt;();<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    eventLoop.execute(() -&gt; action.accept(future));<a name="line.165"></a>
+<span class="sourceLineNo">165</span>    action.accept(future);<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    try {<a name="line.166"></a>
 <span class="sourceLineNo">167</span>      return future.get().longValue();<a name="line.167"></a>
 <span class="sourceLineNo">168</span>    } catch (InterruptedException e) {<a name="line.168"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html
index e0fd898..d81f075 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html
@@ -44,111 +44,97 @@
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.wal.WAL.Entry;<a name="line.36"></a>
 <span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.wal.WALEdit;<a name="line.37"></a>
 <span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.wal.WALKey;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.htrace.core.Span;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.42"></a>
-<span class="sourceLineNo">043</span><a name="line.43"></a>
-<span class="sourceLineNo">044</span>/**<a name="line.44"></a>
-<span class="sourceLineNo">045</span> * A WAL Entry for {@link AbstractFSWAL} implementation.  Immutable.<a name="line.45"></a>
-<span class="sourceLineNo">046</span> * A subclass of {@link Entry} that carries extra info across the ring buffer such as<a name="line.46"></a>
-<span class="sourceLineNo">047</span> * region sequence id (we want to use this later, just before we write the WAL to ensure region<a name="line.47"></a>
-<span class="sourceLineNo">048</span> * edits maintain order).  The extra info added here is not 'serialized' as part of the WALEdit<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * hence marked 'transient' to underline this fact.  It also adds mechanism so we can wait on<a name="line.49"></a>
-<span class="sourceLineNo">050</span> * the assign of the region sequence id.  See #stampRegionSequenceId().<a name="line.50"></a>
-<span class="sourceLineNo">051</span> */<a name="line.51"></a>
-<span class="sourceLineNo">052</span>@InterfaceAudience.Private<a name="line.52"></a>
-<span class="sourceLineNo">053</span>class FSWALEntry extends Entry {<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  // The below data members are denoted 'transient' just to highlight these are not persisted;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  // they are only in memory and held here while passing over the ring buffer.<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  private final transient long txid;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private final transient boolean inMemstore;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private final transient RegionInfo regionInfo;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private final transient Set&lt;byte[]&gt; familyNames;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  // The tracing span for this entry when writing WAL.<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  private transient Span span;<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  FSWALEntry(final long txid, final WALKey key, final WALEdit edit,<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      final RegionInfo regionInfo, final boolean inMemstore) {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    super(key, edit);<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    this.inMemstore = inMemstore;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    this.regionInfo = regionInfo;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    this.txid = txid;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    if (inMemstore) {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>      // construct familyNames here to reduce the work of log sinker.<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      this.familyNames = collectFamilies(edit.getCells());<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    } else {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>      this.familyNames = Collections.&lt;byte[]&gt; emptySet();<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    }<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  }<a name="line.76"></a>
-<span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>  @VisibleForTesting<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  static Set&lt;byte[]&gt; collectFamilies(List&lt;Cell&gt; cells) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    if (CollectionUtils.isEmpty(cells)) {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      return Collections.emptySet();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    } else {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      return cells.stream()<a name="line.83"></a>
-<span class="sourceLineNo">084</span>           .filter(v -&gt; !CellUtil.matchingFamily(v, WALEdit.METAFAMILY))<a name="line.84"></a>
-<span class="sourceLineNo">085</span>           .collect(toCollection(() -&gt; new TreeSet&lt;&gt;(CellComparator.getInstance()::compareFamilies)))<a name="line.85"></a>
-<span class="sourceLineNo">086</span>           .stream()<a name="line.86"></a>
-<span class="sourceLineNo">087</span>           .map(CellUtil::cloneFamily)<a name="line.87"></a>
-<span class="sourceLineNo">088</span>           .collect(toCollection(() -&gt; new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR)));<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
+<span class="sourceLineNo">039</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>/**<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * A WAL Entry for {@link AbstractFSWAL} implementation.  Immutable.<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * A subclass of {@link Entry} that carries extra info across the ring buffer such as<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * region sequence id (we want to use this later, just before we write the WAL to ensure region<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * edits maintain order).  The extra info added here is not 'serialized' as part of the WALEdit<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * hence marked 'transient' to underline this fact.  It also adds mechanism so we can wait on<a name="line.48"></a>
+<span class="sourceLineNo">049</span> * the assign of the region sequence id.  See #stampRegionSequenceId().<a name="line.49"></a>
+<span class="sourceLineNo">050</span> */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>@InterfaceAudience.Private<a name="line.51"></a>
+<span class="sourceLineNo">052</span>class FSWALEntry extends Entry {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  // The below data members are denoted 'transient' just to highlight these are not persisted;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  // they are only in memory and held here while passing over the ring buffer.<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private final transient long txid;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private final transient boolean inMemstore;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  private final transient RegionInfo regionInfo;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private final transient Set&lt;byte[]&gt; familyNames;<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  FSWALEntry(final long txid, final WALKey key, final WALEdit edit,<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      final RegionInfo regionInfo, final boolean inMemstore) {<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    super(key, edit);<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    this.inMemstore = inMemstore;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    this.regionInfo = regionInfo;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    this.txid = txid;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    if (inMemstore) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>      // construct familyNames here to reduce the work of log sinker.<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      this.familyNames = collectFamilies(edit.getCells());<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    } else {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      this.familyNames = Collections.&lt;byte[]&gt; emptySet();<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  }<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  @VisibleForTesting<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  static Set&lt;byte[]&gt; collectFamilies(List&lt;Cell&gt; cells) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    if (CollectionUtils.isEmpty(cells)) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      return Collections.emptySet();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    } else {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      return cells.stream()<a name="line.79"></a>
+<span class="sourceLineNo">080</span>           .filter(v -&gt; !CellUtil.matchingFamily(v, WALEdit.METAFAMILY))<a name="line.80"></a>
+<span class="sourceLineNo">081</span>           .collect(toCollection(() -&gt; new TreeSet&lt;&gt;(CellComparator.getInstance()::compareFamilies)))<a name="line.81"></a>
+<span class="sourceLineNo">082</span>           .stream()<a name="line.82"></a>
+<span class="sourceLineNo">083</span>           .map(CellUtil::cloneFamily)<a name="line.83"></a>
+<span class="sourceLineNo">084</span>           .collect(toCollection(() -&gt; new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR)));<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public String toString() {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    return "sequence=" + this.txid + ", " + super.toString();<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  };<a name="line.90"></a>
 <span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  public String toString() {<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    return "sequence=" + this.txid + ", " + super.toString();<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  };<a name="line.94"></a>
+<span class="sourceLineNo">092</span>  boolean isInMemStore() {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    return this.inMemstore;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
 <span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  boolean isInMemStore() {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    return this.inMemstore;<a name="line.97"></a>
+<span class="sourceLineNo">096</span>  RegionInfo getRegionInfo() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return this.regionInfo;<a name="line.97"></a>
 <span class="sourceLineNo">098</span>  }<a name="line.98"></a>
 <span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>  RegionInfo getRegionInfo() {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    return this.regionInfo;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>  /**<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * @return The transaction id of this edit.<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   */<a name="line.106"></a>
-<span class="sourceLineNo">107</span>  long getTxid() {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    return this.txid;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  /**<a name="line.111"></a>
-<span class="sourceLineNo">112</span>   * Here is where a WAL edit gets its sequenceid. SIDE-EFFECT is our stamping the sequenceid into<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * every Cell AND setting the sequenceid into the MVCC WriteEntry!!!!<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   * @return The sequenceid we stamped on this edit.<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   */<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  long stampRegionSequenceId(MultiVersionConcurrencyControl.WriteEntry we) throws IOException {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    long regionSequenceId = we.getWriteNumber();<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    if (!this.getEdit().isReplay() &amp;&amp; inMemstore) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      for (Cell c : getEdit().getCells()) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        PrivateCellUtil.setSequenceId(c, regionSequenceId);<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    getKey().setWriteEntry(we);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    return regionSequenceId;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  /**<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * @return the family names which are effected by this edit.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  Set&lt;byte[]&gt; getFamilyNames() {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    return familyNames;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  void attachSpan(Span span) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    this.span = span;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>  Span detachSpan() {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    Span span = this.span;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    this.span = null;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    return span;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
-<span class="sourceLineNo">143</span>}<a name="line.143"></a>
+<span class="sourceLineNo">100</span>  /**<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * @return The transaction id of this edit.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   */<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  long getTxid() {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    return this.txid;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>   * Here is where a WAL edit gets its sequenceid. SIDE-EFFECT is our stamping the sequenceid into<a name="line.108"></a>
+<span class="sourceLineNo">109</span>   * every Cell AND setting the sequenceid into the MVCC WriteEntry!!!!<a name="line.109"></a>
+<span class="sourceLineNo">110</span>   * @return The sequenceid we stamped on this edit.<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  long stampRegionSequenceId(MultiVersionConcurrencyControl.WriteEntry we) throws IOException {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    long regionSequenceId = we.getWriteNumber();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    if (!this.getEdit().isReplay() &amp;&amp; inMemstore) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      for (Cell c : getEdit().getCells()) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>        PrivateCellUtil.setSequenceId(c, regionSequenceId);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    getKey().setWriteEntry(we);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    return regionSequenceId;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  /**<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * @return the family names which are effected by this edit.<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   */<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  Set&lt;byte[]&gt; getFamilyNames() {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    return familyNames;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>}<a name="line.129"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html
index 749773d..88e8ee7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html
@@ -26,74 +26,72 @@
 <span class="sourceLineNo">018</span> */<a name="line.18"></a>
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.regionserver.wal;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.htrace.core.Span;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * A 'truck' to carry a payload across the ring buffer from Handler to WAL. Has EITHER a<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * {@link FSWALEntry} for making an append OR it has a {@link SyncFuture} to represent a 'sync'<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * invocation. Truck instances are reused by the disruptor when it gets around to it so their<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * payload references must be discarded on consumption to release them to GC.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> */<a name="line.29"></a>
-<span class="sourceLineNo">030</span>@InterfaceAudience.Private<a name="line.30"></a>
-<span class="sourceLineNo">031</span>final class RingBufferTruck {<a name="line.31"></a>
-<span class="sourceLineNo">032</span><a name="line.32"></a>
-<span class="sourceLineNo">033</span>  public enum Type {<a name="line.33"></a>
-<span class="sourceLineNo">034</span>    APPEND, SYNC, EMPTY<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  }<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  private Type type = Type.EMPTY;<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>  /**<a name="line.39"></a>
-<span class="sourceLineNo">040</span>   * Either this syncFuture is set or entry is set, but not both.<a name="line.40"></a>
-<span class="sourceLineNo">041</span>   */<a name="line.41"></a>
-<span class="sourceLineNo">042</span>  private SyncFuture sync;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  private FSWALEntry entry;<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>  /**<a name="line.45"></a>
-<span class="sourceLineNo">046</span>   * Load the truck with a {@link FSWALEntry} and associated {@link Span}.<a name="line.46"></a>
-<span class="sourceLineNo">047</span>   */<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  void load(FSWALEntry entry, Span span) {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    entry.attachSpan(span);<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    this.entry = entry;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    this.type = Type.APPEND;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  }<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  /**<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * Load the truck with a {@link SyncFuture}.<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  void load(final SyncFuture syncFuture) {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    this.sync = syncFuture;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    this.type = Type.SYNC;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  /**<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   * @return the type of this truck's payload.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   */<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  Type type() {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    return type;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  /**<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * Unload the truck of its {@link FSWALEntry} payload. The internal reference is released.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  FSWALEntry unloadAppend() {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    FSWALEntry entry = this.entry;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    this.entry = null;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    this.type = Type.EMPTY;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    return entry;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  /**<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   * Unload the truck of its {@link SyncFuture} payload. The internal reference is released.<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  SyncFuture unloadSync() {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    SyncFuture sync = this.sync;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    this.sync = null;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    this.type = Type.EMPTY;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    return sync;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>}<a name="line.88"></a>
+<span class="sourceLineNo">021</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * A 'truck' to carry a payload across the ring buffer from Handler to WAL. Has EITHER a<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * {@link FSWALEntry} for making an append OR it has a {@link SyncFuture} to represent a 'sync'<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * invocation. Truck instances are reused by the disruptor when it gets around to it so their<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * payload references must be discarded on consumption to release them to GC.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>@InterfaceAudience.Private<a name="line.29"></a>
+<span class="sourceLineNo">030</span>final class RingBufferTruck {<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>  public enum Type {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>    APPEND, SYNC, EMPTY<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  private Type type = Type.EMPTY;<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  /**<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   * Either this syncFuture is set or entry is set, but not both.<a name="line.39"></a>
+<span class="sourceLineNo">040</span>   */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  private SyncFuture sync;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  private FSWALEntry entry;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   * Load the truck with a {@link FSWALEntry}.<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  void load(FSWALEntry entry) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    this.entry = entry;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    this.type = Type.APPEND;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   * Load the truck with a {@link SyncFuture}.<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  void load(final SyncFuture syncFuture) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    this.sync = syncFuture;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    this.type = Type.SYNC;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   * @return the type of this truck's payload.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  Type type() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    return type;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  /**<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   * Unload the truck of its {@link FSWALEntry} payload. The internal reference is released.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  FSWALEntry unloadAppend() {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    FSWALEntry entry = this.entry;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    this.entry = null;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    this.type = Type.EMPTY;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    return entry;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   * Unload the truck of its {@link SyncFuture} payload. The internal reference is released.<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  SyncFuture unloadSync() {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    SyncFuture sync = this.sync;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    this.sync = null;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    this.type = Type.EMPTY;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    return sync;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>}<a name="line.86"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html
index 749773d..88e8ee7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html
@@ -26,74 +26,72 @@
 <span class="sourceLineNo">018</span> */<a name="line.18"></a>
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.regionserver.wal;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.htrace.core.Span;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
-<span class="sourceLineNo">025</span> * A 'truck' to carry a payload across the ring buffer from Handler to WAL. Has EITHER a<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * {@link FSWALEntry} for making an append OR it has a {@link SyncFuture} to represent a 'sync'<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * invocation. Truck instances are reused by the disruptor when it gets around to it so their<a name="line.27"></a>
-<span class="sourceLineNo">028</span> * payload references must be discarded on consumption to release them to GC.<a name="line.28"></a>
-<span class="sourceLineNo">029</span> */<a name="line.29"></a>
-<span class="sourceLineNo">030</span>@InterfaceAudience.Private<a name="line.30"></a>
-<span class="sourceLineNo">031</span>final class RingBufferTruck {<a name="line.31"></a>
-<span class="sourceLineNo">032</span><a name="line.32"></a>
-<span class="sourceLineNo">033</span>  public enum Type {<a name="line.33"></a>
-<span class="sourceLineNo">034</span>    APPEND, SYNC, EMPTY<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  }<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  private Type type = Type.EMPTY;<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>  /**<a name="line.39"></a>
-<span class="sourceLineNo">040</span>   * Either this syncFuture is set or entry is set, but not both.<a name="line.40"></a>
-<span class="sourceLineNo">041</span>   */<a name="line.41"></a>
-<span class="sourceLineNo">042</span>  private SyncFuture sync;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  private FSWALEntry entry;<a name="line.43"></a>
-<span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>  /**<a name="line.45"></a>
-<span class="sourceLineNo">046</span>   * Load the truck with a {@link FSWALEntry} and associated {@link Span}.<a name="line.46"></a>
-<span class="sourceLineNo">047</span>   */<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  void load(FSWALEntry entry, Span span) {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    entry.attachSpan(span);<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    this.entry = entry;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    this.type = Type.APPEND;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  }<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  /**<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * Load the truck with a {@link SyncFuture}.<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  void load(final SyncFuture syncFuture) {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    this.sync = syncFuture;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    this.type = Type.SYNC;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  /**<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   * @return the type of this truck's payload.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   */<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  Type type() {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    return type;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  /**<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * Unload the truck of its {@link FSWALEntry} payload. The internal reference is released.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  FSWALEntry unloadAppend() {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    FSWALEntry entry = this.entry;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    this.entry = null;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    this.type = Type.EMPTY;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    return entry;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  /**<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   * Unload the truck of its {@link SyncFuture} payload. The internal reference is released.<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  SyncFuture unloadSync() {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    SyncFuture sync = this.sync;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    this.sync = null;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    this.type = Type.EMPTY;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    return sync;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>}<a name="line.88"></a>
+<span class="sourceLineNo">021</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * A 'truck' to carry a payload across the ring buffer from Handler to WAL. Has EITHER a<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * {@link FSWALEntry} for making an append OR it has a {@link SyncFuture} to represent a 'sync'<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * invocation. Truck instances are reused by the disruptor when it gets around to it so their<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * payload references must be discarded on consumption to release them to GC.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> */<a name="line.28"></a>
+<span class="sourceLineNo">029</span>@InterfaceAudience.Private<a name="line.29"></a>
+<span class="sourceLineNo">030</span>final class RingBufferTruck {<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>  public enum Type {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>    APPEND, SYNC, EMPTY<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  private Type type = Type.EMPTY;<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  /**<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   * Either this syncFuture is set or entry is set, but not both.<a name="line.39"></a>
+<span class="sourceLineNo">040</span>   */<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  private SyncFuture sync;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  private FSWALEntry entry;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   * Load the truck with a {@link FSWALEntry}.<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  void load(FSWALEntry entry) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    this.entry = entry;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    this.type = Type.APPEND;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>  /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   * Load the truck with a {@link SyncFuture}.<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  void load(final SyncFuture syncFuture) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    this.sync = syncFuture;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    this.type = Type.SYNC;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   * @return the type of this truck's payload.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  Type type() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    return type;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  /**<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   * Unload the truck of its {@link FSWALEntry} payload. The internal reference is released.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  FSWALEntry unloadAppend() {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    FSWALEntry entry = this.entry;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    this.entry = null;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    this.type = Type.EMPTY;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    return entry;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  /**<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   * Unload the truck of its {@link SyncFuture} payload. The internal reference is released.<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  SyncFuture unloadSync() {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    SyncFuture sync = this.sync;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    this.sync = null;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    this.type = Type.EMPTY;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    return sync;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>}<a name="line.86"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
index ca9ee19..378dd90 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
@@ -29,38 +29,39 @@
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import org.apache.hadoop.conf.Configuration;<a name="line.22"></a>
 <span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.io.crypto.Encryptor;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader;<a name="line.26"></a>
-<span class="sourceLineNo">027</span><a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.Channel;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop;<a name="line.29"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.io.crypto.Encryptor;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.Channel;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader;<a name="line.29"></a>
 <span class="sourceLineNo">030</span><a name="line.30"></a>
 <span class="sourceLineNo">031</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class SecureAsyncProtobufLogWriter extends AsyncProtobufLogWriter {<a name="line.32"></a>
 <span class="sourceLineNo">033</span><a name="line.33"></a>
 <span class="sourceLineNo">034</span>  private Encryptor encryptor = null;<a name="line.34"></a>
 <span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>  public SecureAsyncProtobufLogWriter(EventLoop eventLoop, Class&lt;? extends Channel&gt; channelClass) {<a name="line.36"></a>
-<span class="sourceLineNo">037</span>    super(eventLoop, channelClass);<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  }<a name="line.38"></a>
-<span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>  @Override<a name="line.40"></a>
-<span class="sourceLineNo">041</span>  protected WALHeader buildWALHeader(Configuration conf, WALHeader.Builder builder)<a name="line.41"></a>
-<span class="sourceLineNo">042</span>      throws IOException {<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    return super.buildSecureWALHeader(conf, builder);<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  }<a name="line.44"></a>
-<span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span>  @Override<a name="line.46"></a>
-<span class="sourceLineNo">047</span>  protected void setEncryptor(Encryptor encryptor) {<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    this.encryptor = encryptor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>  }<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  @Override<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  protected void initAfterHeader(boolean doCompress) throws IOException {<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    super.secureInitAfterHeader(doCompress, encryptor);<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  }<a name="line.54"></a>
-<span class="sourceLineNo">055</span>}<a name="line.55"></a>
+<span class="sourceLineNo">036</span>  public SecureAsyncProtobufLogWriter(EventLoopGroup eventLoopGroup,<a name="line.36"></a>
+<span class="sourceLineNo">037</span>      Class&lt;? extends Channel&gt; channelClass) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    super(eventLoopGroup, channelClass);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  @Override<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  protected WALHeader buildWALHeader(Configuration conf, WALHeader.Builder builder)<a name="line.42"></a>
+<span class="sourceLineNo">043</span>      throws IOException {<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    return super.buildSecureWALHeader(conf, builder);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>  @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  protected void setEncryptor(Encryptor encryptor) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    this.encryptor = encryptor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>  @Override<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  protected void initAfterHeader(boolean doCompress) throws IOException {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    super.secureInitAfterHeader(doCompress, encryptor);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  }<a name="line.55"></a>
+<span class="sourceLineNo">056</span>}<a name="line.56"></a>
 
 
 


[47/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/ClusterStatus.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ClusterStatus.html b/devapidocs/org/apache/hadoop/hbase/ClusterStatus.html
index 1312219..0d40599 100644
--- a/devapidocs/org/apache/hadoop/hbase/ClusterStatus.html
+++ b/devapidocs/org/apache/hadoop/hbase/ClusterStatus.html
@@ -827,7 +827,7 @@ public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterId</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.302">getClusterId</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.305">getClusterId</a>()</pre>
 </li>
 </ul>
 <a name="getMasterCoprocessors--">
@@ -836,7 +836,7 @@ public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessors</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.306">getMasterCoprocessors</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.309">getMasterCoprocessors</a>()</pre>
 </li>
 </ul>
 <a name="getLastMajorCompactionTsForTable-org.apache.hadoop.hbase.TableName-">
@@ -845,7 +845,7 @@ public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTsForTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.310">getLastMajorCompactionTsForTable</a>(<a href="../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.313">getLastMajorCompactionTsForTable</a>(<a href="../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
 </li>
 </ul>
 <a name="getLastMajorCompactionTsForRegion-byte:A-">
@@ -854,7 +854,7 @@ public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTsForRegion</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.323">getLastMajorCompactionTsForRegion</a>(byte[]&nbsp;region)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.326">getLastMajorCompactionTsForRegion</a>(byte[]&nbsp;region)</pre>
 </li>
 </ul>
 <a name="isBalancerOn--">
@@ -863,7 +863,7 @@ public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>isBalancerOn</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.334">isBalancerOn</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.337">isBalancerOn</a>()</pre>
 </li>
 </ul>
 <a name="getBalancerOn--">
@@ -872,7 +872,7 @@ public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getBalancerOn</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.338">getBalancerOn</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.341">getBalancerOn</a>()</pre>
 </li>
 </ul>
 <a name="getMasterInfoPort--">
@@ -881,7 +881,7 @@ public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterInfoPort</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.342">getMasterInfoPort</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.345">getMasterInfoPort</a>()</pre>
 </li>
 </ul>
 <a name="toString--">
@@ -890,7 +890,7 @@ public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.346">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.349">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -904,7 +904,7 @@ public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.htm
 <li class="blockList">
 <h4>newBuilder</h4>
 <pre>@InterfaceAudience.Private
-public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.389">newBuilder</a>()</pre>
+public static&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.392">newBuilder</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index 3480c51..e918bd9 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
index a1176d2..d13ca02 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
@@ -5582,6 +5582,18 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <td class="colLast"><span class="typeNameLabel">RSGroupBasedLoadBalancer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getMisplacedRegions-java.util.Map-">getMisplacedRegions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupAdminEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;notClearedServers)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupAdminEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;notClearedServers)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupBasedLoadBalancer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#randomAssignment-org.apache.hadoop.hbase.client.RegionInfo-java.util.List-">randomAssignment</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index ee93cbc..25ec5c3 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -542,24 +542,24 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/constraint/class-use/ConstraintException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/constraint/class-use/ConstraintException.html b/devapidocs/org/apache/hadoop/hbase/constraint/class-use/ConstraintException.html
index 2d61658..7e45db9 100644
--- a/devapidocs/org/apache/hadoop/hbase/constraint/class-use/ConstraintException.html
+++ b/devapidocs/org/apache/hadoop/hbase/constraint/class-use/ConstraintException.html
@@ -130,10 +130,16 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">RSGroupInfoManagerImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#checkGroupName-java.lang.String-">checkGroupName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkForDeadOrOnlineServers-java.util.Set-">checkForDeadOrOnlineServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Check if the set of servers are belong to dead servers list or online servers list.</div>
+</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupInfoManagerImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#checkGroupName-java.lang.String-">checkGroupName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkOnlineServersOnly-java.util.Set-">checkOnlineServersOnly</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
 </tr>
 </tbody>


[45/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
index 3e06578..4b70b85 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/MasterCoprocessorEnvironment.html
@@ -507,6 +507,13 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Called after servers are removed from rsgroup</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -515,7 +522,7 @@
 <div class="block">Called after new LockProcedure is queued.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                    <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -523,20 +530,20 @@
 <div class="block">Called after a snapshot restore operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge)</code>
 <div class="block">This will be called after the roll back of the regions merge.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called after the roll back of the split region is completed</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -544,7 +551,7 @@
 <div class="block">Called after the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                           boolean&nbsp;newValue,
@@ -552,7 +559,7 @@
 <div class="block">Called after setting split / merge switch</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -560,7 +567,7 @@
 <div class="block">Called after the quota for the table is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -568,7 +575,7 @@
 <div class="block">Called after the quota for the user is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -577,7 +584,7 @@
 <div class="block">Called after the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -586,7 +593,7 @@
 <div class="block">Called after the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
             <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -594,28 +601,28 @@
 <div class="block">Called after the snapshot operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called immediately after an active master instance has completed
  initialization.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the table memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the truncateTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
             <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
@@ -623,7 +630,7 @@
 <div class="block">Called after the region unassignment has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
@@ -631,14 +638,14 @@
 <div class="block">Called after update peerConfig for the specified peer</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  long&nbsp;procId)</code>
 <div class="block">Called before a abortProcedure request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
@@ -646,48 +653,48 @@
 <div class="block">Called before add a replication peer</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Called before a new region server group is added</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
          <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to assigning a specific region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called prior to requesting rebalancing of the cluster regions, though after
  the initial checks for regions in transition and the balance switch flag.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>
 <div class="block">Called before a region server group is removed</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 boolean&nbsp;newValue)</code>
 <div class="block">Called prior to modifying the flag used to enable/disable region balancing.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before clear dead region servers.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -695,7 +702,7 @@
 <div class="block">Called before a snapshot is cloned.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
@@ -703,7 +710,7 @@
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
@@ -712,7 +719,7 @@
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
@@ -721,7 +728,7 @@
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
@@ -729,7 +736,7 @@
 <div class="block">Called before decommission region servers.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
@@ -737,14 +744,14 @@
  namespace</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>
 <div class="block">Called before a snapshot is deleted.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -752,7 +759,7 @@
  table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -760,81 +767,81 @@
  table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before disable a replication peer</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before enable a replication peer</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to enabling a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to enabling a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before get cluster status.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before a getLocks request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
 <div class="block">Called before a getNamespaceDescriptor request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before a getProcedures request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before get the configured ReplicationPeerConfig for the specified peer</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
@@ -843,7 +850,7 @@
 <div class="block">Called before a getTableDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;descriptors,
@@ -851,34 +858,34 @@
 <div class="block">Called before a getTableNames request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before list decommissioned region servers.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>
 <div class="block">Called before a listNamespaceDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Called before list replication peers.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>
 <div class="block">Called before listSnapshots request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
@@ -886,27 +893,27 @@
 <div class="block">Called before heartbeat to a lock.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Call before the master initialization is set to true.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge)</code>
 <div class="block">Called before merge regions request.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge)</code>
 <div class="block">Called before the regions merge.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
@@ -914,14 +921,14 @@
 <div class="block">This will be called before update META step as part of regions merge transaction.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called prior to modifying a namespace's properties.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -929,7 +936,7 @@
 <div class="block">Called prior to modifying a table's properties.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTableAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -937,7 +944,7 @@
 <div class="block">Called prior to modifying a table's properties.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
        <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
@@ -946,7 +953,7 @@
 <div class="block">Called prior to moving a given region from one region server to another.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
@@ -954,7 +961,7 @@
 <div class="block">Called before servers are moved to target region server group</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
@@ -963,7 +970,7 @@
 <div class="block">Called before servers are moved to target region server group</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
@@ -971,7 +978,7 @@
 <div class="block">Called before tables are moved to target region server group</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
@@ -979,27 +986,34 @@
 <div class="block">Called before recommission region server.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to marking a given region as offline.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before remove a replication peer</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Called before a region server group is removed</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Called before servers are removed from rsgroup</div>
+</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
@@ -1258,27 +1272,33 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupAdminEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;notClearedServers)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#postDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDeleteTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#preCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regions)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
@@ -1581,99 +1601,104 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionInfos,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;description)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                     <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          boolean&nbsp;newValue,
                          <a href="../../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;switchType)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                 <a href="../../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="http://do

<TRUNCATED>

[14/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
index 81e76e9..cf2f511 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.OpType.html
@@ -2698,85 +2698,91 @@
 <span class="sourceLineNo">2690</span>  }<a name="line.2690"></a>
 <span class="sourceLineNo">2691</span><a name="line.2691"></a>
 <span class="sourceLineNo">2692</span>  @Override<a name="line.2692"></a>
-<span class="sourceLineNo">2693</span>  public void preAddReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2693"></a>
-<span class="sourceLineNo">2694</span>      String peerId, ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2694"></a>
-<span class="sourceLineNo">2695</span>    requirePermission(getActiveUser(ctx), "addReplicationPeer", Action.ADMIN);<a name="line.2695"></a>
+<span class="sourceLineNo">2693</span>  public void preRemoveServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span>      Set&lt;Address&gt; servers) throws IOException {<a name="line.2694"></a>
+<span class="sourceLineNo">2695</span>    requirePermission(getActiveUser(ctx), "removeServers", Action.ADMIN);<a name="line.2695"></a>
 <span class="sourceLineNo">2696</span>  }<a name="line.2696"></a>
 <span class="sourceLineNo">2697</span><a name="line.2697"></a>
 <span class="sourceLineNo">2698</span>  @Override<a name="line.2698"></a>
-<span class="sourceLineNo">2699</span>  public void preRemoveReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2699"></a>
-<span class="sourceLineNo">2700</span>      String peerId) throws IOException {<a name="line.2700"></a>
-<span class="sourceLineNo">2701</span>    requirePermission(getActiveUser(ctx), "removeReplicationPeer", Action.ADMIN);<a name="line.2701"></a>
+<span class="sourceLineNo">2699</span>  public void preAddReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2699"></a>
+<span class="sourceLineNo">2700</span>      String peerId, ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2700"></a>
+<span class="sourceLineNo">2701</span>    requirePermission(getActiveUser(ctx), "addReplicationPeer", Action.ADMIN);<a name="line.2701"></a>
 <span class="sourceLineNo">2702</span>  }<a name="line.2702"></a>
 <span class="sourceLineNo">2703</span><a name="line.2703"></a>
 <span class="sourceLineNo">2704</span>  @Override<a name="line.2704"></a>
-<span class="sourceLineNo">2705</span>  public void preEnableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2705"></a>
+<span class="sourceLineNo">2705</span>  public void preRemoveReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2705"></a>
 <span class="sourceLineNo">2706</span>      String peerId) throws IOException {<a name="line.2706"></a>
-<span class="sourceLineNo">2707</span>    requirePermission(getActiveUser(ctx), "enableReplicationPeer", Action.ADMIN);<a name="line.2707"></a>
+<span class="sourceLineNo">2707</span>    requirePermission(getActiveUser(ctx), "removeReplicationPeer", Action.ADMIN);<a name="line.2707"></a>
 <span class="sourceLineNo">2708</span>  }<a name="line.2708"></a>
 <span class="sourceLineNo">2709</span><a name="line.2709"></a>
 <span class="sourceLineNo">2710</span>  @Override<a name="line.2710"></a>
-<span class="sourceLineNo">2711</span>  public void preDisableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2711"></a>
+<span class="sourceLineNo">2711</span>  public void preEnableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2711"></a>
 <span class="sourceLineNo">2712</span>      String peerId) throws IOException {<a name="line.2712"></a>
-<span class="sourceLineNo">2713</span>    requirePermission(getActiveUser(ctx), "disableReplicationPeer", Action.ADMIN);<a name="line.2713"></a>
+<span class="sourceLineNo">2713</span>    requirePermission(getActiveUser(ctx), "enableReplicationPeer", Action.ADMIN);<a name="line.2713"></a>
 <span class="sourceLineNo">2714</span>  }<a name="line.2714"></a>
 <span class="sourceLineNo">2715</span><a name="line.2715"></a>
 <span class="sourceLineNo">2716</span>  @Override<a name="line.2716"></a>
-<span class="sourceLineNo">2717</span>  public void preGetReplicationPeerConfig(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2717"></a>
+<span class="sourceLineNo">2717</span>  public void preDisableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2717"></a>
 <span class="sourceLineNo">2718</span>      String peerId) throws IOException {<a name="line.2718"></a>
-<span class="sourceLineNo">2719</span>    requirePermission(getActiveUser(ctx), "getReplicationPeerConfig", Action.ADMIN);<a name="line.2719"></a>
+<span class="sourceLineNo">2719</span>    requirePermission(getActiveUser(ctx), "disableReplicationPeer", Action.ADMIN);<a name="line.2719"></a>
 <span class="sourceLineNo">2720</span>  }<a name="line.2720"></a>
 <span class="sourceLineNo">2721</span><a name="line.2721"></a>
 <span class="sourceLineNo">2722</span>  @Override<a name="line.2722"></a>
-<span class="sourceLineNo">2723</span>  public void preUpdateReplicationPeerConfig(<a name="line.2723"></a>
-<span class="sourceLineNo">2724</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String peerId,<a name="line.2724"></a>
-<span class="sourceLineNo">2725</span>      ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2725"></a>
-<span class="sourceLineNo">2726</span>    requirePermission(getActiveUser(ctx), "updateReplicationPeerConfig", Action.ADMIN);<a name="line.2726"></a>
-<span class="sourceLineNo">2727</span>  }<a name="line.2727"></a>
-<span class="sourceLineNo">2728</span><a name="line.2728"></a>
-<span class="sourceLineNo">2729</span>  @Override<a name="line.2729"></a>
-<span class="sourceLineNo">2730</span>  public void preListReplicationPeers(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2730"></a>
-<span class="sourceLineNo">2731</span>      String regex) throws IOException {<a name="line.2731"></a>
-<span class="sourceLineNo">2732</span>    requirePermission(getActiveUser(ctx), "listReplicationPeers", Action.ADMIN);<a name="line.2732"></a>
+<span class="sourceLineNo">2723</span>  public void preGetReplicationPeerConfig(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2723"></a>
+<span class="sourceLineNo">2724</span>      String peerId) throws IOException {<a name="line.2724"></a>
+<span class="sourceLineNo">2725</span>    requirePermission(getActiveUser(ctx), "getReplicationPeerConfig", Action.ADMIN);<a name="line.2725"></a>
+<span class="sourceLineNo">2726</span>  }<a name="line.2726"></a>
+<span class="sourceLineNo">2727</span><a name="line.2727"></a>
+<span class="sourceLineNo">2728</span>  @Override<a name="line.2728"></a>
+<span class="sourceLineNo">2729</span>  public void preUpdateReplicationPeerConfig(<a name="line.2729"></a>
+<span class="sourceLineNo">2730</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String peerId,<a name="line.2730"></a>
+<span class="sourceLineNo">2731</span>      ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2731"></a>
+<span class="sourceLineNo">2732</span>    requirePermission(getActiveUser(ctx), "updateReplicationPeerConfig", Action.ADMIN);<a name="line.2732"></a>
 <span class="sourceLineNo">2733</span>  }<a name="line.2733"></a>
 <span class="sourceLineNo">2734</span><a name="line.2734"></a>
 <span class="sourceLineNo">2735</span>  @Override<a name="line.2735"></a>
-<span class="sourceLineNo">2736</span>  public void preRequestLock(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace,<a name="line.2736"></a>
-<span class="sourceLineNo">2737</span>      TableName tableName, RegionInfo[] regionInfos, String description)<a name="line.2737"></a>
-<span class="sourceLineNo">2738</span>  throws IOException {<a name="line.2738"></a>
-<span class="sourceLineNo">2739</span>    // There are operations in the CREATE and ADMIN domain which may require lock, READ<a name="line.2739"></a>
-<span class="sourceLineNo">2740</span>    // or WRITE. So for any lock request, we check for these two perms irrespective of lock type.<a name="line.2740"></a>
-<span class="sourceLineNo">2741</span>    String reason = String.format("Description=%s", description);<a name="line.2741"></a>
-<span class="sourceLineNo">2742</span>    checkLockPermissions(getActiveUser(ctx), namespace, tableName, regionInfos, reason);<a name="line.2742"></a>
-<span class="sourceLineNo">2743</span>  }<a name="line.2743"></a>
-<span class="sourceLineNo">2744</span><a name="line.2744"></a>
-<span class="sourceLineNo">2745</span>  @Override<a name="line.2745"></a>
-<span class="sourceLineNo">2746</span>  public void preLockHeartbeat(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2746"></a>
-<span class="sourceLineNo">2747</span>      TableName tableName, String description) throws IOException {<a name="line.2747"></a>
-<span class="sourceLineNo">2748</span>    checkLockPermissions(getActiveUser(ctx), null, tableName, null, description);<a name="line.2748"></a>
+<span class="sourceLineNo">2736</span>  public void preListReplicationPeers(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2736"></a>
+<span class="sourceLineNo">2737</span>      String regex) throws IOException {<a name="line.2737"></a>
+<span class="sourceLineNo">2738</span>    requirePermission(getActiveUser(ctx), "listReplicationPeers", Action.ADMIN);<a name="line.2738"></a>
+<span class="sourceLineNo">2739</span>  }<a name="line.2739"></a>
+<span class="sourceLineNo">2740</span><a name="line.2740"></a>
+<span class="sourceLineNo">2741</span>  @Override<a name="line.2741"></a>
+<span class="sourceLineNo">2742</span>  public void preRequestLock(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace,<a name="line.2742"></a>
+<span class="sourceLineNo">2743</span>      TableName tableName, RegionInfo[] regionInfos, String description)<a name="line.2743"></a>
+<span class="sourceLineNo">2744</span>  throws IOException {<a name="line.2744"></a>
+<span class="sourceLineNo">2745</span>    // There are operations in the CREATE and ADMIN domain which may require lock, READ<a name="line.2745"></a>
+<span class="sourceLineNo">2746</span>    // or WRITE. So for any lock request, we check for these two perms irrespective of lock type.<a name="line.2746"></a>
+<span class="sourceLineNo">2747</span>    String reason = String.format("Description=%s", description);<a name="line.2747"></a>
+<span class="sourceLineNo">2748</span>    checkLockPermissions(getActiveUser(ctx), namespace, tableName, regionInfos, reason);<a name="line.2748"></a>
 <span class="sourceLineNo">2749</span>  }<a name="line.2749"></a>
 <span class="sourceLineNo">2750</span><a name="line.2750"></a>
 <span class="sourceLineNo">2751</span>  @Override<a name="line.2751"></a>
-<span class="sourceLineNo">2752</span>  public void preGetClusterStatus(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.2752"></a>
-<span class="sourceLineNo">2753</span>      throws IOException {<a name="line.2753"></a>
-<span class="sourceLineNo">2754</span>    requirePermission(getActiveUser(ctx), "getClusterStatus", Action.ADMIN);<a name="line.2754"></a>
+<span class="sourceLineNo">2752</span>  public void preLockHeartbeat(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2752"></a>
+<span class="sourceLineNo">2753</span>      TableName tableName, String description) throws IOException {<a name="line.2753"></a>
+<span class="sourceLineNo">2754</span>    checkLockPermissions(getActiveUser(ctx), null, tableName, null, description);<a name="line.2754"></a>
 <span class="sourceLineNo">2755</span>  }<a name="line.2755"></a>
 <span class="sourceLineNo">2756</span><a name="line.2756"></a>
-<span class="sourceLineNo">2757</span>  private void checkLockPermissions(User user, String namespace,<a name="line.2757"></a>
-<span class="sourceLineNo">2758</span>      TableName tableName, RegionInfo[] regionInfos, String reason)<a name="line.2758"></a>
-<span class="sourceLineNo">2759</span>  throws IOException {<a name="line.2759"></a>
-<span class="sourceLineNo">2760</span>    if (namespace != null &amp;&amp; !namespace.isEmpty()) {<a name="line.2760"></a>
-<span class="sourceLineNo">2761</span>      requireNamespacePermission(user, reason, namespace, Action.ADMIN, Action.CREATE);<a name="line.2761"></a>
-<span class="sourceLineNo">2762</span>    } else if (tableName != null || (regionInfos != null &amp;&amp; regionInfos.length &gt; 0)) {<a name="line.2762"></a>
-<span class="sourceLineNo">2763</span>      // So, either a table or regions op. If latter, check perms ons table.<a name="line.2763"></a>
-<span class="sourceLineNo">2764</span>      TableName tn = tableName != null? tableName: regionInfos[0].getTable();<a name="line.2764"></a>
-<span class="sourceLineNo">2765</span>      requireTablePermission(user, reason, tn, null, null,<a name="line.2765"></a>
-<span class="sourceLineNo">2766</span>          Action.ADMIN, Action.CREATE);<a name="line.2766"></a>
-<span class="sourceLineNo">2767</span>    } else {<a name="line.2767"></a>
-<span class="sourceLineNo">2768</span>      throw new DoNotRetryIOException("Invalid lock level when requesting permissions.");<a name="line.2768"></a>
-<span class="sourceLineNo">2769</span>    }<a name="line.2769"></a>
-<span class="sourceLineNo">2770</span>  }<a name="line.2770"></a>
-<span class="sourceLineNo">2771</span>}<a name="line.2771"></a>
+<span class="sourceLineNo">2757</span>  @Override<a name="line.2757"></a>
+<span class="sourceLineNo">2758</span>  public void preGetClusterStatus(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.2758"></a>
+<span class="sourceLineNo">2759</span>      throws IOException {<a name="line.2759"></a>
+<span class="sourceLineNo">2760</span>    requirePermission(getActiveUser(ctx), "getClusterStatus", Action.ADMIN);<a name="line.2760"></a>
+<span class="sourceLineNo">2761</span>  }<a name="line.2761"></a>
+<span class="sourceLineNo">2762</span><a name="line.2762"></a>
+<span class="sourceLineNo">2763</span>  private void checkLockPermissions(User user, String namespace,<a name="line.2763"></a>
+<span class="sourceLineNo">2764</span>      TableName tableName, RegionInfo[] regionInfos, String reason)<a name="line.2764"></a>
+<span class="sourceLineNo">2765</span>  throws IOException {<a name="line.2765"></a>
+<span class="sourceLineNo">2766</span>    if (namespace != null &amp;&amp; !namespace.isEmpty()) {<a name="line.2766"></a>
+<span class="sourceLineNo">2767</span>      requireNamespacePermission(user, reason, namespace, Action.ADMIN, Action.CREATE);<a name="line.2767"></a>
+<span class="sourceLineNo">2768</span>    } else if (tableName != null || (regionInfos != null &amp;&amp; regionInfos.length &gt; 0)) {<a name="line.2768"></a>
+<span class="sourceLineNo">2769</span>      // So, either a table or regions op. If latter, check perms ons table.<a name="line.2769"></a>
+<span class="sourceLineNo">2770</span>      TableName tn = tableName != null? tableName: regionInfos[0].getTable();<a name="line.2770"></a>
+<span class="sourceLineNo">2771</span>      requireTablePermission(user, reason, tn, null, null,<a name="line.2771"></a>
+<span class="sourceLineNo">2772</span>          Action.ADMIN, Action.CREATE);<a name="line.2772"></a>
+<span class="sourceLineNo">2773</span>    } else {<a name="line.2773"></a>
+<span class="sourceLineNo">2774</span>      throw new DoNotRetryIOException("Invalid lock level when requesting permissions.");<a name="line.2774"></a>
+<span class="sourceLineNo">2775</span>    }<a name="line.2775"></a>
+<span class="sourceLineNo">2776</span>  }<a name="line.2776"></a>
+<span class="sourceLineNo">2777</span>}<a name="line.2777"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
index 81e76e9..cf2f511 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/security/access/AccessController.html
@@ -2698,85 +2698,91 @@
 <span class="sourceLineNo">2690</span>  }<a name="line.2690"></a>
 <span class="sourceLineNo">2691</span><a name="line.2691"></a>
 <span class="sourceLineNo">2692</span>  @Override<a name="line.2692"></a>
-<span class="sourceLineNo">2693</span>  public void preAddReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2693"></a>
-<span class="sourceLineNo">2694</span>      String peerId, ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2694"></a>
-<span class="sourceLineNo">2695</span>    requirePermission(getActiveUser(ctx), "addReplicationPeer", Action.ADMIN);<a name="line.2695"></a>
+<span class="sourceLineNo">2693</span>  public void preRemoveServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span>      Set&lt;Address&gt; servers) throws IOException {<a name="line.2694"></a>
+<span class="sourceLineNo">2695</span>    requirePermission(getActiveUser(ctx), "removeServers", Action.ADMIN);<a name="line.2695"></a>
 <span class="sourceLineNo">2696</span>  }<a name="line.2696"></a>
 <span class="sourceLineNo">2697</span><a name="line.2697"></a>
 <span class="sourceLineNo">2698</span>  @Override<a name="line.2698"></a>
-<span class="sourceLineNo">2699</span>  public void preRemoveReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2699"></a>
-<span class="sourceLineNo">2700</span>      String peerId) throws IOException {<a name="line.2700"></a>
-<span class="sourceLineNo">2701</span>    requirePermission(getActiveUser(ctx), "removeReplicationPeer", Action.ADMIN);<a name="line.2701"></a>
+<span class="sourceLineNo">2699</span>  public void preAddReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2699"></a>
+<span class="sourceLineNo">2700</span>      String peerId, ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2700"></a>
+<span class="sourceLineNo">2701</span>    requirePermission(getActiveUser(ctx), "addReplicationPeer", Action.ADMIN);<a name="line.2701"></a>
 <span class="sourceLineNo">2702</span>  }<a name="line.2702"></a>
 <span class="sourceLineNo">2703</span><a name="line.2703"></a>
 <span class="sourceLineNo">2704</span>  @Override<a name="line.2704"></a>
-<span class="sourceLineNo">2705</span>  public void preEnableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2705"></a>
+<span class="sourceLineNo">2705</span>  public void preRemoveReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2705"></a>
 <span class="sourceLineNo">2706</span>      String peerId) throws IOException {<a name="line.2706"></a>
-<span class="sourceLineNo">2707</span>    requirePermission(getActiveUser(ctx), "enableReplicationPeer", Action.ADMIN);<a name="line.2707"></a>
+<span class="sourceLineNo">2707</span>    requirePermission(getActiveUser(ctx), "removeReplicationPeer", Action.ADMIN);<a name="line.2707"></a>
 <span class="sourceLineNo">2708</span>  }<a name="line.2708"></a>
 <span class="sourceLineNo">2709</span><a name="line.2709"></a>
 <span class="sourceLineNo">2710</span>  @Override<a name="line.2710"></a>
-<span class="sourceLineNo">2711</span>  public void preDisableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2711"></a>
+<span class="sourceLineNo">2711</span>  public void preEnableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2711"></a>
 <span class="sourceLineNo">2712</span>      String peerId) throws IOException {<a name="line.2712"></a>
-<span class="sourceLineNo">2713</span>    requirePermission(getActiveUser(ctx), "disableReplicationPeer", Action.ADMIN);<a name="line.2713"></a>
+<span class="sourceLineNo">2713</span>    requirePermission(getActiveUser(ctx), "enableReplicationPeer", Action.ADMIN);<a name="line.2713"></a>
 <span class="sourceLineNo">2714</span>  }<a name="line.2714"></a>
 <span class="sourceLineNo">2715</span><a name="line.2715"></a>
 <span class="sourceLineNo">2716</span>  @Override<a name="line.2716"></a>
-<span class="sourceLineNo">2717</span>  public void preGetReplicationPeerConfig(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2717"></a>
+<span class="sourceLineNo">2717</span>  public void preDisableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2717"></a>
 <span class="sourceLineNo">2718</span>      String peerId) throws IOException {<a name="line.2718"></a>
-<span class="sourceLineNo">2719</span>    requirePermission(getActiveUser(ctx), "getReplicationPeerConfig", Action.ADMIN);<a name="line.2719"></a>
+<span class="sourceLineNo">2719</span>    requirePermission(getActiveUser(ctx), "disableReplicationPeer", Action.ADMIN);<a name="line.2719"></a>
 <span class="sourceLineNo">2720</span>  }<a name="line.2720"></a>
 <span class="sourceLineNo">2721</span><a name="line.2721"></a>
 <span class="sourceLineNo">2722</span>  @Override<a name="line.2722"></a>
-<span class="sourceLineNo">2723</span>  public void preUpdateReplicationPeerConfig(<a name="line.2723"></a>
-<span class="sourceLineNo">2724</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String peerId,<a name="line.2724"></a>
-<span class="sourceLineNo">2725</span>      ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2725"></a>
-<span class="sourceLineNo">2726</span>    requirePermission(getActiveUser(ctx), "updateReplicationPeerConfig", Action.ADMIN);<a name="line.2726"></a>
-<span class="sourceLineNo">2727</span>  }<a name="line.2727"></a>
-<span class="sourceLineNo">2728</span><a name="line.2728"></a>
-<span class="sourceLineNo">2729</span>  @Override<a name="line.2729"></a>
-<span class="sourceLineNo">2730</span>  public void preListReplicationPeers(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2730"></a>
-<span class="sourceLineNo">2731</span>      String regex) throws IOException {<a name="line.2731"></a>
-<span class="sourceLineNo">2732</span>    requirePermission(getActiveUser(ctx), "listReplicationPeers", Action.ADMIN);<a name="line.2732"></a>
+<span class="sourceLineNo">2723</span>  public void preGetReplicationPeerConfig(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2723"></a>
+<span class="sourceLineNo">2724</span>      String peerId) throws IOException {<a name="line.2724"></a>
+<span class="sourceLineNo">2725</span>    requirePermission(getActiveUser(ctx), "getReplicationPeerConfig", Action.ADMIN);<a name="line.2725"></a>
+<span class="sourceLineNo">2726</span>  }<a name="line.2726"></a>
+<span class="sourceLineNo">2727</span><a name="line.2727"></a>
+<span class="sourceLineNo">2728</span>  @Override<a name="line.2728"></a>
+<span class="sourceLineNo">2729</span>  public void preUpdateReplicationPeerConfig(<a name="line.2729"></a>
+<span class="sourceLineNo">2730</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String peerId,<a name="line.2730"></a>
+<span class="sourceLineNo">2731</span>      ReplicationPeerConfig peerConfig) throws IOException {<a name="line.2731"></a>
+<span class="sourceLineNo">2732</span>    requirePermission(getActiveUser(ctx), "updateReplicationPeerConfig", Action.ADMIN);<a name="line.2732"></a>
 <span class="sourceLineNo">2733</span>  }<a name="line.2733"></a>
 <span class="sourceLineNo">2734</span><a name="line.2734"></a>
 <span class="sourceLineNo">2735</span>  @Override<a name="line.2735"></a>
-<span class="sourceLineNo">2736</span>  public void preRequestLock(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace,<a name="line.2736"></a>
-<span class="sourceLineNo">2737</span>      TableName tableName, RegionInfo[] regionInfos, String description)<a name="line.2737"></a>
-<span class="sourceLineNo">2738</span>  throws IOException {<a name="line.2738"></a>
-<span class="sourceLineNo">2739</span>    // There are operations in the CREATE and ADMIN domain which may require lock, READ<a name="line.2739"></a>
-<span class="sourceLineNo">2740</span>    // or WRITE. So for any lock request, we check for these two perms irrespective of lock type.<a name="line.2740"></a>
-<span class="sourceLineNo">2741</span>    String reason = String.format("Description=%s", description);<a name="line.2741"></a>
-<span class="sourceLineNo">2742</span>    checkLockPermissions(getActiveUser(ctx), namespace, tableName, regionInfos, reason);<a name="line.2742"></a>
-<span class="sourceLineNo">2743</span>  }<a name="line.2743"></a>
-<span class="sourceLineNo">2744</span><a name="line.2744"></a>
-<span class="sourceLineNo">2745</span>  @Override<a name="line.2745"></a>
-<span class="sourceLineNo">2746</span>  public void preLockHeartbeat(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2746"></a>
-<span class="sourceLineNo">2747</span>      TableName tableName, String description) throws IOException {<a name="line.2747"></a>
-<span class="sourceLineNo">2748</span>    checkLockPermissions(getActiveUser(ctx), null, tableName, null, description);<a name="line.2748"></a>
+<span class="sourceLineNo">2736</span>  public void preListReplicationPeers(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2736"></a>
+<span class="sourceLineNo">2737</span>      String regex) throws IOException {<a name="line.2737"></a>
+<span class="sourceLineNo">2738</span>    requirePermission(getActiveUser(ctx), "listReplicationPeers", Action.ADMIN);<a name="line.2738"></a>
+<span class="sourceLineNo">2739</span>  }<a name="line.2739"></a>
+<span class="sourceLineNo">2740</span><a name="line.2740"></a>
+<span class="sourceLineNo">2741</span>  @Override<a name="line.2741"></a>
+<span class="sourceLineNo">2742</span>  public void preRequestLock(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace,<a name="line.2742"></a>
+<span class="sourceLineNo">2743</span>      TableName tableName, RegionInfo[] regionInfos, String description)<a name="line.2743"></a>
+<span class="sourceLineNo">2744</span>  throws IOException {<a name="line.2744"></a>
+<span class="sourceLineNo">2745</span>    // There are operations in the CREATE and ADMIN domain which may require lock, READ<a name="line.2745"></a>
+<span class="sourceLineNo">2746</span>    // or WRITE. So for any lock request, we check for these two perms irrespective of lock type.<a name="line.2746"></a>
+<span class="sourceLineNo">2747</span>    String reason = String.format("Description=%s", description);<a name="line.2747"></a>
+<span class="sourceLineNo">2748</span>    checkLockPermissions(getActiveUser(ctx), namespace, tableName, regionInfos, reason);<a name="line.2748"></a>
 <span class="sourceLineNo">2749</span>  }<a name="line.2749"></a>
 <span class="sourceLineNo">2750</span><a name="line.2750"></a>
 <span class="sourceLineNo">2751</span>  @Override<a name="line.2751"></a>
-<span class="sourceLineNo">2752</span>  public void preGetClusterStatus(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.2752"></a>
-<span class="sourceLineNo">2753</span>      throws IOException {<a name="line.2753"></a>
-<span class="sourceLineNo">2754</span>    requirePermission(getActiveUser(ctx), "getClusterStatus", Action.ADMIN);<a name="line.2754"></a>
+<span class="sourceLineNo">2752</span>  public void preLockHeartbeat(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.2752"></a>
+<span class="sourceLineNo">2753</span>      TableName tableName, String description) throws IOException {<a name="line.2753"></a>
+<span class="sourceLineNo">2754</span>    checkLockPermissions(getActiveUser(ctx), null, tableName, null, description);<a name="line.2754"></a>
 <span class="sourceLineNo">2755</span>  }<a name="line.2755"></a>
 <span class="sourceLineNo">2756</span><a name="line.2756"></a>
-<span class="sourceLineNo">2757</span>  private void checkLockPermissions(User user, String namespace,<a name="line.2757"></a>
-<span class="sourceLineNo">2758</span>      TableName tableName, RegionInfo[] regionInfos, String reason)<a name="line.2758"></a>
-<span class="sourceLineNo">2759</span>  throws IOException {<a name="line.2759"></a>
-<span class="sourceLineNo">2760</span>    if (namespace != null &amp;&amp; !namespace.isEmpty()) {<a name="line.2760"></a>
-<span class="sourceLineNo">2761</span>      requireNamespacePermission(user, reason, namespace, Action.ADMIN, Action.CREATE);<a name="line.2761"></a>
-<span class="sourceLineNo">2762</span>    } else if (tableName != null || (regionInfos != null &amp;&amp; regionInfos.length &gt; 0)) {<a name="line.2762"></a>
-<span class="sourceLineNo">2763</span>      // So, either a table or regions op. If latter, check perms ons table.<a name="line.2763"></a>
-<span class="sourceLineNo">2764</span>      TableName tn = tableName != null? tableName: regionInfos[0].getTable();<a name="line.2764"></a>
-<span class="sourceLineNo">2765</span>      requireTablePermission(user, reason, tn, null, null,<a name="line.2765"></a>
-<span class="sourceLineNo">2766</span>          Action.ADMIN, Action.CREATE);<a name="line.2766"></a>
-<span class="sourceLineNo">2767</span>    } else {<a name="line.2767"></a>
-<span class="sourceLineNo">2768</span>      throw new DoNotRetryIOException("Invalid lock level when requesting permissions.");<a name="line.2768"></a>
-<span class="sourceLineNo">2769</span>    }<a name="line.2769"></a>
-<span class="sourceLineNo">2770</span>  }<a name="line.2770"></a>
-<span class="sourceLineNo">2771</span>}<a name="line.2771"></a>
+<span class="sourceLineNo">2757</span>  @Override<a name="line.2757"></a>
+<span class="sourceLineNo">2758</span>  public void preGetClusterStatus(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.2758"></a>
+<span class="sourceLineNo">2759</span>      throws IOException {<a name="line.2759"></a>
+<span class="sourceLineNo">2760</span>    requirePermission(getActiveUser(ctx), "getClusterStatus", Action.ADMIN);<a name="line.2760"></a>
+<span class="sourceLineNo">2761</span>  }<a name="line.2761"></a>
+<span class="sourceLineNo">2762</span><a name="line.2762"></a>
+<span class="sourceLineNo">2763</span>  private void checkLockPermissions(User user, String namespace,<a name="line.2763"></a>
+<span class="sourceLineNo">2764</span>      TableName tableName, RegionInfo[] regionInfos, String reason)<a name="line.2764"></a>
+<span class="sourceLineNo">2765</span>  throws IOException {<a name="line.2765"></a>
+<span class="sourceLineNo">2766</span>    if (namespace != null &amp;&amp; !namespace.isEmpty()) {<a name="line.2766"></a>
+<span class="sourceLineNo">2767</span>      requireNamespacePermission(user, reason, namespace, Action.ADMIN, Action.CREATE);<a name="line.2767"></a>
+<span class="sourceLineNo">2768</span>    } else if (tableName != null || (regionInfos != null &amp;&amp; regionInfos.length &gt; 0)) {<a name="line.2768"></a>
+<span class="sourceLineNo">2769</span>      // So, either a table or regions op. If latter, check perms ons table.<a name="line.2769"></a>
+<span class="sourceLineNo">2770</span>      TableName tn = tableName != null? tableName: regionInfos[0].getTable();<a name="line.2770"></a>
+<span class="sourceLineNo">2771</span>      requireTablePermission(user, reason, tn, null, null,<a name="line.2771"></a>
+<span class="sourceLineNo">2772</span>          Action.ADMIN, Action.CREATE);<a name="line.2772"></a>
+<span class="sourceLineNo">2773</span>    } else {<a name="line.2773"></a>
+<span class="sourceLineNo">2774</span>      throw new DoNotRetryIOException("Invalid lock level when requesting permissions.");<a name="line.2774"></a>
+<span class="sourceLineNo">2775</span>    }<a name="line.2775"></a>
+<span class="sourceLineNo">2776</span>  }<a name="line.2776"></a>
+<span class="sourceLineNo">2777</span>}<a name="line.2777"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html b/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
index a7bc752..238fc0d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
@@ -42,87 +42,86 @@
 <span class="sourceLineNo">034</span><a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.shaded.com.google.common.base.Throwables;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.Channel;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.nio.NioEventLoopGroup;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.socket.nio.NioSocketChannel;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.shaded.io.netty.util.concurrent.DefaultThreadFactory;<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>/**<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * A WAL provider that use {@link AsyncFSWAL}.<a name="line.44"></a>
-<span class="sourceLineNo">045</span> */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>@InterfaceAudience.Private<a name="line.46"></a>
-<span class="sourceLineNo">047</span>@InterfaceStability.Evolving<a name="line.47"></a>
-<span class="sourceLineNo">048</span>public class AsyncFSWALProvider extends AbstractFSWALProvider&lt;AsyncFSWAL&gt; {<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  private static final Log LOG = LogFactory.getLog(AsyncFSWALProvider.class);<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  // Only public so classes back in regionserver.wal can access<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  public interface AsyncWriter extends WALProvider.AsyncWriter {<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    /**<a name="line.54"></a>
-<span class="sourceLineNo">055</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.55"></a>
-<span class="sourceLineNo">056</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.56"></a>
-<span class="sourceLineNo">057</span>     *         meet the needs of the given Writer implementation.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>     */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable)<a name="line.59"></a>
-<span class="sourceLineNo">060</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private EventLoopGroup eventLoopGroup;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private Class&lt;? extends Channel&gt; channelClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  @Override<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  protected AsyncFSWAL createWAL() throws IOException {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    return new AsyncFSWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        getWALDirectoryName(factory.factoryId),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.70"></a>
-<span class="sourceLineNo">071</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null,<a name="line.71"></a>
-<span class="sourceLineNo">072</span>        eventLoopGroup.next(), channelClass);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  @Override<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    Pair&lt;EventLoopGroup, Class&lt;? extends Channel&gt;&gt; eventLoopGroupAndChannelClass =<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        NettyAsyncFSWALConfigHelper.getEventLoopConfig(conf);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    if (eventLoopGroupAndChannelClass != null) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      eventLoopGroup = eventLoopGroupAndChannelClass.getFirst();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      channelClass = eventLoopGroupAndChannelClass.getSecond();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    } else {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      eventLoopGroup = new NioEventLoopGroup(1,<a name="line.83"></a>
-<span class="sourceLineNo">084</span>          new DefaultThreadFactory("AsyncFSWAL", true, Thread.MAX_PRIORITY));<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      channelClass = NioSocketChannel.class;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    }<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  /**<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   * public because of AsyncFSWAL. Should be package-private<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem fs, Path path,<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      boolean overwritable, EventLoop eventLoop, Class&lt;? extends Channel&gt; channelClass)<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      throws IOException {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    // Configuration already does caching for the Class lookup.<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    Class&lt;? extends AsyncWriter&gt; logWriterClass = conf.getClass(<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      "hbase.regionserver.hlog.async.writer.impl", AsyncProtobufLogWriter.class, AsyncWriter.class);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    try {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>      AsyncWriter writer = logWriterClass.getConstructor(EventLoop.class, Class.class)<a name="line.99"></a>
-<span class="sourceLineNo">100</span>          .newInstance(eventLoop, channelClass);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      writer.init(fs, path, conf, overwritable);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      return writer;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    } catch (Exception e) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        LOG.error("The RegionServer async write ahead log provider " +<a name="line.105"></a>
-<span class="sourceLineNo">106</span>            "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.106"></a>
-<span class="sourceLineNo">107</span>            "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.107"></a>
-<span class="sourceLineNo">108</span>            "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.108"></a>
-<span class="sourceLineNo">109</span>            "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      } else {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      Throwables.propagateIfPossible(e, IOException.class);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      throw new IOException("cannot get log writer", e);<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>}<a name="line.117"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.nio.NioEventLoopGroup;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.socket.nio.NioSocketChannel;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.shaded.io.netty.util.concurrent.DefaultThreadFactory;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>/**<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * A WAL provider that use {@link AsyncFSWAL}.<a name="line.43"></a>
+<span class="sourceLineNo">044</span> */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>@InterfaceAudience.Private<a name="line.45"></a>
+<span class="sourceLineNo">046</span>@InterfaceStability.Evolving<a name="line.46"></a>
+<span class="sourceLineNo">047</span>public class AsyncFSWALProvider extends AbstractFSWALProvider&lt;AsyncFSWAL&gt; {<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  private static final Log LOG = LogFactory.getLog(AsyncFSWALProvider.class);<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  // Only public so classes back in regionserver.wal can access<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  public interface AsyncWriter extends WALProvider.AsyncWriter {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.54"></a>
+<span class="sourceLineNo">055</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.55"></a>
+<span class="sourceLineNo">056</span>     *         meet the needs of the given Writer implementation.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>     */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable)<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private EventLoopGroup eventLoopGroup;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private Class&lt;? extends Channel&gt; channelClass;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  protected AsyncFSWAL createWAL() throws IOException {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    return new AsyncFSWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        getWALDirectoryName(factory.factoryId),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null,<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        eventLoopGroup, channelClass);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  }<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  @Override<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    Pair&lt;EventLoopGroup, Class&lt;? extends Channel&gt;&gt; eventLoopGroupAndChannelClass =<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        NettyAsyncFSWALConfigHelper.getEventLoopConfig(conf);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    if (eventLoopGroupAndChannelClass != null) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      eventLoopGroup = eventLoopGroupAndChannelClass.getFirst();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      channelClass = eventLoopGroupAndChannelClass.getSecond();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    } else {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      eventLoopGroup = new NioEventLoopGroup(1,<a name="line.82"></a>
+<span class="sourceLineNo">083</span>          new DefaultThreadFactory("AsyncFSWAL", true, Thread.MAX_PRIORITY));<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      channelClass = NioSocketChannel.class;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * public because of AsyncFSWAL. Should be package-private<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem fs, Path path,<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      boolean overwritable, EventLoopGroup eventLoopGroup, Class&lt;? extends Channel&gt; channelClass)<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      throws IOException {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    // Configuration already does caching for the Class lookup.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    Class&lt;? extends AsyncWriter&gt; logWriterClass = conf.getClass(<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      "hbase.regionserver.hlog.async.writer.impl", AsyncProtobufLogWriter.class, AsyncWriter.class);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    try {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      AsyncWriter writer = logWriterClass.getConstructor(EventLoopGroup.class, Class.class)<a name="line.98"></a>
+<span class="sourceLineNo">099</span>          .newInstance(eventLoopGroup, channelClass);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      writer.init(fs, path, conf, overwritable);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      return writer;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    } catch (Exception e) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        LOG.error("The RegionServer async write ahead log provider " +<a name="line.104"></a>
+<span class="sourceLineNo">105</span>          "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.105"></a>
+<span class="sourceLineNo">106</span>          "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.106"></a>
+<span class="sourceLineNo">107</span>          "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      } else {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      Throwables.propagateIfPossible(e, IOException.class);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      throw new IOException("cannot get log writer", e);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>}<a name="line.116"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html b/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
index a7bc752..238fc0d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
@@ -42,87 +42,86 @@
 <span class="sourceLineNo">034</span><a name="line.34"></a>
 <span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.shaded.com.google.common.base.Throwables;<a name="line.35"></a>
 <span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.Channel;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.nio.NioEventLoopGroup;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.socket.nio.NioSocketChannel;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.shaded.io.netty.util.concurrent.DefaultThreadFactory;<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>/**<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * A WAL provider that use {@link AsyncFSWAL}.<a name="line.44"></a>
-<span class="sourceLineNo">045</span> */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>@InterfaceAudience.Private<a name="line.46"></a>
-<span class="sourceLineNo">047</span>@InterfaceStability.Evolving<a name="line.47"></a>
-<span class="sourceLineNo">048</span>public class AsyncFSWALProvider extends AbstractFSWALProvider&lt;AsyncFSWAL&gt; {<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  private static final Log LOG = LogFactory.getLog(AsyncFSWALProvider.class);<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  // Only public so classes back in regionserver.wal can access<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  public interface AsyncWriter extends WALProvider.AsyncWriter {<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    /**<a name="line.54"></a>
-<span class="sourceLineNo">055</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.55"></a>
-<span class="sourceLineNo">056</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.56"></a>
-<span class="sourceLineNo">057</span>     *         meet the needs of the given Writer implementation.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>     */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable)<a name="line.59"></a>
-<span class="sourceLineNo">060</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private EventLoopGroup eventLoopGroup;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private Class&lt;? extends Channel&gt; channelClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  @Override<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  protected AsyncFSWAL createWAL() throws IOException {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    return new AsyncFSWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>        getWALDirectoryName(factory.factoryId),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.70"></a>
-<span class="sourceLineNo">071</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null,<a name="line.71"></a>
-<span class="sourceLineNo">072</span>        eventLoopGroup.next(), channelClass);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  @Override<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    Pair&lt;EventLoopGroup, Class&lt;? extends Channel&gt;&gt; eventLoopGroupAndChannelClass =<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        NettyAsyncFSWALConfigHelper.getEventLoopConfig(conf);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    if (eventLoopGroupAndChannelClass != null) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      eventLoopGroup = eventLoopGroupAndChannelClass.getFirst();<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      channelClass = eventLoopGroupAndChannelClass.getSecond();<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    } else {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      eventLoopGroup = new NioEventLoopGroup(1,<a name="line.83"></a>
-<span class="sourceLineNo">084</span>          new DefaultThreadFactory("AsyncFSWAL", true, Thread.MAX_PRIORITY));<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      channelClass = NioSocketChannel.class;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    }<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  /**<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   * public because of AsyncFSWAL. Should be package-private<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem fs, Path path,<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      boolean overwritable, EventLoop eventLoop, Class&lt;? extends Channel&gt; channelClass)<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      throws IOException {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    // Configuration already does caching for the Class lookup.<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    Class&lt;? extends AsyncWriter&gt; logWriterClass = conf.getClass(<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      "hbase.regionserver.hlog.async.writer.impl", AsyncProtobufLogWriter.class, AsyncWriter.class);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    try {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>      AsyncWriter writer = logWriterClass.getConstructor(EventLoop.class, Class.class)<a name="line.99"></a>
-<span class="sourceLineNo">100</span>          .newInstance(eventLoop, channelClass);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      writer.init(fs, path, conf, overwritable);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      return writer;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    } catch (Exception e) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        LOG.error("The RegionServer async write ahead log provider " +<a name="line.105"></a>
-<span class="sourceLineNo">106</span>            "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.106"></a>
-<span class="sourceLineNo">107</span>            "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.107"></a>
-<span class="sourceLineNo">108</span>            "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.108"></a>
-<span class="sourceLineNo">109</span>            "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      } else {<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      Throwables.propagateIfPossible(e, IOException.class);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      throw new IOException("cannot get log writer", e);<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>}<a name="line.117"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.nio.NioEventLoopGroup;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.socket.nio.NioSocketChannel;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.shaded.io.netty.util.concurrent.DefaultThreadFactory;<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>/**<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * A WAL provider that use {@link AsyncFSWAL}.<a name="line.43"></a>
+<span class="sourceLineNo">044</span> */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>@InterfaceAudience.Private<a name="line.45"></a>
+<span class="sourceLineNo">046</span>@InterfaceStability.Evolving<a name="line.46"></a>
+<span class="sourceLineNo">047</span>public class AsyncFSWALProvider extends AbstractFSWALProvider&lt;AsyncFSWAL&gt; {<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  private static final Log LOG = LogFactory.getLog(AsyncFSWALProvider.class);<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  // Only public so classes back in regionserver.wal can access<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  public interface AsyncWriter extends WALProvider.AsyncWriter {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>     * @throws IOException if something goes wrong initializing an output stream<a name="line.54"></a>
+<span class="sourceLineNo">055</span>     * @throws StreamLacksCapabilityException if the given FileSystem can't provide streams that<a name="line.55"></a>
+<span class="sourceLineNo">056</span>     *         meet the needs of the given Writer implementation.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>     */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    void init(FileSystem fs, Path path, Configuration c, boolean overwritable)<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        throws IOException, CommonFSUtils.StreamLacksCapabilityException;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private EventLoopGroup eventLoopGroup;<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private Class&lt;? extends Channel&gt; channelClass;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  @Override<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  protected AsyncFSWAL createWAL() throws IOException {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    return new AsyncFSWAL(CommonFSUtils.getWALFileSystem(conf), CommonFSUtils.getWALRootDir(conf),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        getWALDirectoryName(factory.factoryId),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>        getWALArchiveDirectoryName(conf, factory.factoryId), conf, listeners, true, logPrefix,<a name="line.69"></a>
+<span class="sourceLineNo">070</span>        META_WAL_PROVIDER_ID.equals(providerId) ? META_WAL_PROVIDER_ID : null,<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        eventLoopGroup, channelClass);<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  }<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  @Override<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  protected void doInit(Configuration conf) throws IOException {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    Pair&lt;EventLoopGroup, Class&lt;? extends Channel&gt;&gt; eventLoopGroupAndChannelClass =<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        NettyAsyncFSWALConfigHelper.getEventLoopConfig(conf);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    if (eventLoopGroupAndChannelClass != null) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      eventLoopGroup = eventLoopGroupAndChannelClass.getFirst();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      channelClass = eventLoopGroupAndChannelClass.getSecond();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    } else {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      eventLoopGroup = new NioEventLoopGroup(1,<a name="line.82"></a>
+<span class="sourceLineNo">083</span>          new DefaultThreadFactory("AsyncFSWAL", true, Thread.MAX_PRIORITY));<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      channelClass = NioSocketChannel.class;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * public because of AsyncFSWAL. Should be package-private<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  public static AsyncWriter createAsyncWriter(Configuration conf, FileSystem fs, Path path,<a name="line.91"></a>
+<span class="sourceLineNo">092</span>      boolean overwritable, EventLoopGroup eventLoopGroup, Class&lt;? extends Channel&gt; channelClass)<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      throws IOException {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    // Configuration already does caching for the Class lookup.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    Class&lt;? extends AsyncWriter&gt; logWriterClass = conf.getClass(<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      "hbase.regionserver.hlog.async.writer.impl", AsyncProtobufLogWriter.class, AsyncWriter.class);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    try {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      AsyncWriter writer = logWriterClass.getConstructor(EventLoopGroup.class, Class.class)<a name="line.98"></a>
+<span class="sourceLineNo">099</span>          .newInstance(eventLoopGroup, channelClass);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      writer.init(fs, path, conf, overwritable);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      return writer;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    } catch (Exception e) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      if (e instanceof CommonFSUtils.StreamLacksCapabilityException) {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        LOG.error("The RegionServer async write ahead log provider " +<a name="line.104"></a>
+<span class="sourceLineNo">105</span>          "relies on the ability to call " + e.getMessage() + " for proper operation during " +<a name="line.105"></a>
+<span class="sourceLineNo">106</span>          "component failures, but the current FileSystem does not support doing so. Please " +<a name="line.106"></a>
+<span class="sourceLineNo">107</span>          "check the config value of '" + CommonFSUtils.HBASE_WAL_DIR + "' and ensure " +<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          "it points to a FileSystem mount that has suitable capabilities for output streams.");<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      } else {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        LOG.debug("Error instantiating log writer.", e);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      }<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      Throwables.propagateIfPossible(e, IOException.class);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      throw new IOException("cannot get log writer", e);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>}<a name="line.116"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index f3dc4d5..490297e 100644
--- a/export_control.html
+++ b/export_control.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -336,7 +336,7 @@ for more details.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/checkstyle.html b/hbase-annotations/checkstyle.html
index 48c0b1a..c8e5c98 100644
--- a/hbase-annotations/checkstyle.html
+++ b/hbase-annotations/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -178,7 +178,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependencies.html b/hbase-annotations/dependencies.html
index 6528199..40bec43 100644
--- a/hbase-annotations/dependencies.html
+++ b/hbase-annotations/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -272,7 +272,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-convergence.html b/hbase-annotations/dependency-convergence.html
index d5ef3ed..7239cd8 100644
--- a/hbase-annotations/dependency-convergence.html
+++ b/hbase-annotations/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-info.html b/hbase-annotations/dependency-info.html
index ca3f429..ff89a03 100644
--- a/hbase-annotations/dependency-info.html
+++ b/hbase-annotations/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-management.html b/hbase-annotations/dependency-management.html
index bcc4423..685d44a 100644
--- a/hbase-annotations/dependency-management.html
+++ b/hbase-annotations/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/index.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/index.html b/hbase-annotations/index.html
index 5f3064d..000def2 100644
--- a/hbase-annotations/index.html
+++ b/hbase-annotations/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/integration.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/integration.html b/hbase-annotations/integration.html
index 99b9c65..a48bd21 100644
--- a/hbase-annotations/integration.html
+++ b/hbase-annotations/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/issue-tracking.html b/hbase-annotations/issue-tracking.html
index 7812e23..7e1d364 100644
--- a/hbase-annotations/issue-tracking.html
+++ b/hbase-annotations/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/license.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/license.html b/hbase-annotations/license.html
index e5d32c3..b7820b8 100644
--- a/hbase-annotations/license.html
+++ b/hbase-annotations/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/mail-lists.html b/hbase-annotations/mail-lists.html
index e1b8bd1..8074fc8 100644
--- a/hbase-annotations/mail-lists.html
+++ b/hbase-annotations/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugin-management.html b/hbase-annotations/plugin-management.html
index 13140be..5ba0e85 100644
--- a/hbase-annotations/plugin-management.html
+++ b/hbase-annotations/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugins.html b/hbase-annotations/plugins.html
index 82ad86e..676ec6e 100644
--- a/hbase-annotations/plugins.html
+++ b/hbase-annotations/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -222,7 +222,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-info.html b/hbase-annotations/project-info.html
index e333631..13011bf 100644
--- a/hbase-annotations/project-info.html
+++ b/hbase-annotations/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-reports.html b/hbase-annotations/project-reports.html
index f12c01b..e35d890 100644
--- a/hbase-annotations/project-reports.html
+++ b/hbase-annotations/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-summary.html b/hbase-annotations/project-summary.html
index 2d12d3b..dbed282 100644
--- a/hbase-annotations/project-summary.html
+++ b/hbase-annotations/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 


[05/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html
index 33ce961..6e909b1 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html
@@ -55,755 +55,752 @@
 <span class="sourceLineNo">047</span><a name="line.47"></a>
 <span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.48"></a>
 <span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.coprocessor.CoreCoprocessor;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.coprocessor.HasRegionServerServices;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.regionserver.StorefileRefresherChore;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.junit.AfterClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.junit.Assert;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.junit.BeforeClass;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.junit.Test;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.junit.experimental.categories.Category;<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>@Category({MediumTests.class, ClientTests.class})<a name="line.71"></a>
-<span class="sourceLineNo">072</span>public class TestReplicaWithCluster {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final Log LOG = LogFactory.getLog(TestReplicaWithCluster.class);<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final int NB_SERVERS = 3;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final byte[] row = TestReplicaWithCluster.class.getName().getBytes();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final HBaseTestingUtility HTU = new HBaseTestingUtility();<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  // second minicluster used in testing of replication<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static HBaseTestingUtility HTU2;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private static final byte[] f = HConstants.CATALOG_FAMILY;<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private final static int REFRESH_PERIOD = 1000;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private final static int META_SCAN_TIMEOUT_IN_MILLISEC = 200;<a name="line.84"></a>
-<span class="sourceLineNo">085</span><a name="line.85"></a>
-<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * This copro is used to synchronize the tests.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public static class SlowMeCopro implements RegionCoprocessor, RegionObserver {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    static final AtomicLong sleepTime = new AtomicLong(0);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    static final AtomicReference&lt;CountDownLatch&gt; cdl = new AtomicReference&lt;&gt;(new CountDownLatch(0));<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>    public SlowMeCopro() {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>    @Override<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return Optional.of(this);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>    @Override<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.102"></a>
-<span class="sourceLineNo">103</span>                         final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() == 0) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        CountDownLatch latch = cdl.get();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        try {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>          if (sleepTime.get() &gt; 0) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>            LOG.info("Sleeping for " + sleepTime.get() + " ms");<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            Thread.sleep(sleepTime.get());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          } else if (latch.getCount() &gt; 0) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>            LOG.info("Waiting for the counterCountDownLatch");<a name="line.112"></a>
-<span class="sourceLineNo">113</span>            latch.await(2, TimeUnit.MINUTES); // To help the tests to finish.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>            if (latch.getCount() &gt; 0) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>              throw new RuntimeException("Can't wait more");<a name="line.115"></a>
-<span class="sourceLineNo">116</span>            }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>          }<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        } catch (InterruptedException e1) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          LOG.error(e1);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      } else {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        LOG.info("We're not the primary replicas.");<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  /**<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * This copro is used to simulate region server down exception for Get and Scan<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  @CoreCoprocessor<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  public static class RegionServerStoppedCopro implements RegionCoprocessor, RegionObserver {<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>    public RegionServerStoppedCopro() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return Optional.of(this);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>      // Fail for the primary replica and replica 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            + " not running");<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      } else {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        LOG.info("We're replica region " + replicaId);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        final Scan scan) throws IOException {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      // Fail for the primary replica and replica 1<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.164"></a>
-<span class="sourceLineNo">165</span>            + " not running");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      } else {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        LOG.info("We're replica region " + replicaId);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      }<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  /**<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   * This copro is used to slow down the primary meta region scan a bit<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static class RegionServerHostingPrimayMetaRegionSlowOrStopCopro<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      implements RegionCoprocessor, RegionObserver {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    static boolean slowDownPrimaryMetaScan = false;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    static boolean throwException = false;<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    @Override<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return Optional.of(this);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>    @Override<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>      // Fail for the primary replica, but not for meta<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      if (throwException) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        if (!e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>          LOG.info("Get, throw Region Server Stopped Exceptoin for region " + e.getEnvironment()<a name="line.194"></a>
-<span class="sourceLineNo">195</span>              .getRegion().getRegionInfo());<a name="line.195"></a>
-<span class="sourceLineNo">196</span>          throw new RegionServerStoppedException("Server " +<a name="line.196"></a>
-<span class="sourceLineNo">197</span>            ((HasRegionServerServices)e.getEnvironment()).getRegionServerServices().getServerName()<a name="line.197"></a>
-<span class="sourceLineNo">198</span>                  + " not running");<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        }<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      } else {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        LOG.info("Get, We're replica region " + replicaId);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      }<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>    @Override<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        final Scan scan) throws IOException {<a name="line.207"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.regionserver.StorefileRefresherChore;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.junit.AfterClass;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.junit.Assert;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.junit.BeforeClass;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.Test;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.experimental.categories.Category;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>@Category({MediumTests.class, ClientTests.class})<a name="line.70"></a>
+<span class="sourceLineNo">071</span>public class TestReplicaWithCluster {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private static final Log LOG = LogFactory.getLog(TestReplicaWithCluster.class);<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private static final int NB_SERVERS = 3;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final byte[] row = TestReplicaWithCluster.class.getName().getBytes();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private static final HBaseTestingUtility HTU = new HBaseTestingUtility();<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  // second minicluster used in testing of replication<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static HBaseTestingUtility HTU2;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final byte[] f = HConstants.CATALOG_FAMILY;<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private final static int REFRESH_PERIOD = 1000;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private final static int META_SCAN_TIMEOUT_IN_MILLISEC = 200;<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * This copro is used to synchronize the tests.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public static class SlowMeCopro implements RegionCoprocessor, RegionObserver {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    static final AtomicLong sleepTime = new AtomicLong(0);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    static final AtomicReference&lt;CountDownLatch&gt; cdl = new AtomicReference&lt;&gt;(new CountDownLatch(0));<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    public SlowMeCopro() {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>    @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      return Optional.of(this);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>    @Override<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                         final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() == 0) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        CountDownLatch latch = cdl.get();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        try {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>          if (sleepTime.get() &gt; 0) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>            LOG.info("Sleeping for " + sleepTime.get() + " ms");<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            Thread.sleep(sleepTime.get());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          } else if (latch.getCount() &gt; 0) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>            LOG.info("Waiting for the counterCountDownLatch");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>            latch.await(2, TimeUnit.MINUTES); // To help the tests to finish.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>            if (latch.getCount() &gt; 0) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>              throw new RuntimeException("Can't wait more");<a name="line.114"></a>
+<span class="sourceLineNo">115</span>            }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>          }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        } catch (InterruptedException e1) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>          LOG.error(e1);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      } else {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        LOG.info("We're not the primary replicas.");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /**<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * This copro is used to simulate region server down exception for Get and Scan<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  @CoreCoprocessor<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  public static class RegionServerStoppedCopro implements RegionCoprocessor, RegionObserver {<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>    public RegionServerStoppedCopro() {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    @Override<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      return Optional.of(this);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>    @Override<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>      // Fail for the primary replica and replica 1<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.149"></a>
+<span class="sourceLineNo">150</span>            + " not running");<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      } else {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        LOG.info("We're replica region " + replicaId);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        final Scan scan) throws IOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      // Fail for the primary replica and replica 1<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            + " not running");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      } else {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        LOG.info("We're replica region " + replicaId);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * This copro is used to slow down the primary meta region scan a bit<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public static class RegionServerHostingPrimayMetaRegionSlowOrStopCopro<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      implements RegionCoprocessor, RegionObserver {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    static boolean slowDownPrimaryMetaScan = false;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    static boolean throwException = false;<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      return Optional.of(this);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>    @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>      // Fail for the primary replica, but not for meta<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      if (throwException) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        if (!e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          LOG.info("Get, throw Region Server Stopped Exceptoin for region " + e.getEnvironment()<a name="line.193"></a>
+<span class="sourceLineNo">194</span>              .getRegion().getRegionInfo());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                  + " not running");<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      } else {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        LOG.info("Get, We're replica region " + replicaId);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        final Scan scan) throws IOException {<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.207"></a>
 <span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>      // Slow down with the primary meta region scan<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      if (e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        if (slowDownPrimaryMetaScan) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          LOG.info("Scan with primary meta region, slow down a bit");<a name="line.214"></a>
-<span class="sourceLineNo">215</span>          try {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>            Thread.sleep(META_SCAN_TIMEOUT_IN_MILLISEC - 50);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>          } catch (InterruptedException ie) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>            // Ingore<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>        // Fail for the primary replica<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        if (throwException) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>          LOG.info("Scan, throw Region Server Stopped Exceptoin for replica " + e.getEnvironment()<a name="line.224"></a>
-<span class="sourceLineNo">225</span>              .getRegion().getRegionInfo());<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>          throw new RegionServerStoppedException("Server " +<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            ((HasRegionServerServices)e.getEnvironment()).getRegionServerServices().getServerName()<a name="line.228"></a>
-<span class="sourceLineNo">229</span>               + " not running");<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        } else {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>          LOG.info("Scan, We're replica region " + replicaId);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      } else {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        LOG.info("Scan, We're replica region " + replicaId);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    }<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  }<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  @BeforeClass<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  public static void beforeClass() throws Exception {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    // enable store file refreshing<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    HTU.getConfiguration().setInt(StorefileRefresherChore.REGIONSERVER_STOREFILE_REFRESH_PERIOD,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        REFRESH_PERIOD);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>    HTU.getConfiguration().setFloat("hbase.regionserver.logroll.multiplier", 0.0001f);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    HTU.getConfiguration().setInt("replication.source.size.capacity", 10240);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    HTU.getConfiguration().setLong("replication.source.sleepforretries", 100);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    HTU.getConfiguration().setInt("hbase.regionserver.maxlogs", 2);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    HTU.getConfiguration().setLong("hbase.master.logcleaner.ttl", 10);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry", 1);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // Wait for primary call longer so make sure that it will get exception from the primary call<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.get", 1000000);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.scan", 1000000);<a name="line.255"></a>
+<span class="sourceLineNo">209</span>      // Slow down with the primary meta region scan<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      if (e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        if (slowDownPrimaryMetaScan) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>          LOG.info("Scan with primary meta region, slow down a bit");<a name="line.212"></a>
+<span class="sourceLineNo">213</span>          try {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>            Thread.sleep(META_SCAN_TIMEOUT_IN_MILLISEC - 50);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>          } catch (InterruptedException ie) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>            // Ingore<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>        // Fail for the primary replica<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        if (throwException) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          LOG.info("Scan, throw Region Server Stopped Exceptoin for replica " + e.getEnvironment()<a name="line.222"></a>
+<span class="sourceLineNo">223</span>              .getRegion().getRegionInfo());<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>          throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.225"></a>
+<span class="sourceLineNo">226</span>               + " not running");<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        } else {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          LOG.info("Scan, We're replica region " + replicaId);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      } else {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        LOG.info("Scan, We're replica region " + replicaId);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>  @BeforeClass<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  public static void beforeClass() throws Exception {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    // enable store file refreshing<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    HTU.getConfiguration().setInt(StorefileRefresherChore.REGIONSERVER_STOREFILE_REFRESH_PERIOD,<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        REFRESH_PERIOD);<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>    HTU.getConfiguration().setFloat("hbase.regionserver.logroll.multiplier", 0.0001f);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    HTU.getConfiguration().setInt("replication.source.size.capacity", 10240);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    HTU.getConfiguration().setLong("replication.source.sleepforretries", 100);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    HTU.getConfiguration().setInt("hbase.regionserver.maxlogs", 2);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    HTU.getConfiguration().setLong("hbase.master.logcleaner.ttl", 10);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry", 1);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    // Wait for primary call longer so make sure that it will get exception from the primary call<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.get", 1000000);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.scan", 1000000);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    // Retry less so it can fail faster<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    HTU.getConfiguration().setInt("hbase.client.retries.number", 1);<a name="line.255"></a>
 <span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    // Retry less so it can fail faster<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    HTU.getConfiguration().setInt("hbase.client.retries.number", 1);<a name="line.258"></a>
+<span class="sourceLineNo">257</span>    // Enable meta replica at server side<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    HTU.getConfiguration().setInt("hbase.meta.replica.count", 2);<a name="line.258"></a>
 <span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    // Enable meta replica at server side<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    HTU.getConfiguration().setInt("hbase.meta.replica.count", 2);<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    // Make sure master does not host system tables.<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    HTU.getConfiguration().set("hbase.balancer.tablesOnMaster", "none");<a name="line.261"></a>
 <span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    // Make sure master does not host system tables.<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    HTU.getConfiguration().set("hbase.balancer.tablesOnMaster", "none");<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    // Set system coprocessor so it can be applied to meta regions<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    HTU.getConfiguration().set("hbase.coprocessor.region.classes",<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        RegionServerHostingPrimayMetaRegionSlowOrStopCopro.class.getName());<a name="line.268"></a>
+<span class="sourceLineNo">263</span>    // Set system coprocessor so it can be applied to meta regions<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    HTU.getConfiguration().set("hbase.coprocessor.region.classes",<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        RegionServerHostingPrimayMetaRegionSlowOrStopCopro.class.getName());<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    HTU.getConfiguration().setInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        META_SCAN_TIMEOUT_IN_MILLISEC * 1000);<a name="line.268"></a>
 <span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>    HTU.getConfiguration().setInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        META_SCAN_TIMEOUT_IN_MILLISEC * 1000);<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    HTU.startMiniCluster(NB_SERVERS);<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    HTU.getHBaseCluster().startMaster();<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  }<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>  @AfterClass<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public static void afterClass() throws Exception {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    if (HTU2 != null)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      HTU2.shutdownMiniCluster();<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    HTU.shutdownMiniCluster();<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  @Test (timeout=30000)<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public void testCreateDeleteTable() throws IOException {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    // Create table then get the single region for our new table.<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testCreateDeleteTable");<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    Put p = new Put(row);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    p.addColumn(f, row, row);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    table.put(p);<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>    Get g = new Get(row);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    Result r = table.get(g);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Assert.assertFalse(r.isStale());<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    try {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      // But if we ask for stale we will get it<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      g = new Get(row);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      r = table.get(g);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      Assert.assertTrue(r.isStale());<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      SlowMeCopro.cdl.get().countDown();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    } finally {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      SlowMeCopro.cdl.get().countDown();<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      SlowMeCopro.sleepTime.set(0);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    }<a name="line.311"></a>
-<span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    HTU.deleteTable(hdt.getTableName());<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>  @Test (timeout=120000)<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  public void testChangeTable() throws Exception {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    TableDescriptor td = TableDescriptorBuilder.newBuilder(TableName.valueOf("testChangeTable"))<a name="line.319"></a>
-<span class="sourceLineNo">320</span>            .setRegionReplication(NB_SERVERS)<a name="line.320"></a>
-<span class="sourceLineNo">321</span>            .addCoprocessor(SlowMeCopro.class.getName())<a name="line.321"></a>
-<span class="sourceLineNo">322</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(f))<a name="line.322"></a>
-<span class="sourceLineNo">323</span>            .build();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    HTU.getAdmin().createTable(td);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    Table table = HTU.getConnection().getTable(td.getTableName());<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    // basic test: it should work.<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    Put p = new Put(row);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    p.addColumn(f, row, row);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    table.put(p);<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>    Get g = new Get(row);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    Result r = table.get(g);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    Assert.assertFalse(r.isStale());<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>    // Add a CF, it should work.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    TableDescriptor bHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    td = TableDescriptorBuilder.newBuilder(td)<a name="line.337"></a>
-<span class="sourceLineNo">338</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(row))<a name="line.338"></a>
-<span class="sourceLineNo">339</span>            .build();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    HTU.getAdmin().disableTable(td.getTableName());<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    HTU.getAdmin().modifyTable(td);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    HTU.getAdmin().enableTable(td.getTableName());<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    TableDescriptor nHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>    p = new Put(row);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    p.addColumn(row, row, row);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    table.put(p);<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    g = new Get(row);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    r = table.get(g);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    Assert.assertFalse(r.isStale());<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    try {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      g = new Get(row);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      r = table.get(g);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      Assert.assertTrue(r.isStale());<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    } finally {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      SlowMeCopro.cdl.get().countDown();<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      SlowMeCopro.sleepTime.set(0);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Admin admin = HTU.getAdmin();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    nHdt =admin.getDescriptor(td.getTableName());<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>    admin.disableTable(td.getTableName());<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    admin.deleteTable(td.getTableName());<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    admin.close();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  @SuppressWarnings("deprecation")<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  @Test (timeout=300000)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  public void testReplicaAndReplication() throws Exception {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testReplicaAndReplication");<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>    HColumnDescriptor fam = new HColumnDescriptor(row);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    hdt.addFamily(fam);<a name="line.384"></a>
+<span class="sourceLineNo">270</span>    HTU.startMiniCluster(NB_SERVERS);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    HTU.getHBaseCluster().startMaster();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>  @AfterClass<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  public static void afterClass() throws Exception {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    if (HTU2 != null)<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      HTU2.shutdownMiniCluster();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    HTU.shutdownMiniCluster();<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  @Test (timeout=30000)<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public void testCreateDeleteTable() throws IOException {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    // Create table then get the single region for our new table.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testCreateDeleteTable");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    Put p = new Put(row);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    p.addColumn(f, row, row);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    table.put(p);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    Get g = new Get(row);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    Result r = table.get(g);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    Assert.assertFalse(r.isStale());<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>    try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      // But if we ask for stale we will get it<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      g = new Get(row);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      r = table.get(g);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      Assert.assertTrue(r.isStale());<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      SlowMeCopro.cdl.get().countDown();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    } finally {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      SlowMeCopro.cdl.get().countDown();<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      SlowMeCopro.sleepTime.set(0);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    HTU.deleteTable(hdt.getTableName());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>  }<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>  @Test (timeout=120000)<a name="line.314"></a>
+<span class="sourceLineNo">315</span>  public void testChangeTable() throws Exception {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    TableDescriptor td = TableDescriptorBuilder.newBuilder(TableName.valueOf("testChangeTable"))<a name="line.316"></a>
+<span class="sourceLineNo">317</span>            .setRegionReplication(NB_SERVERS)<a name="line.317"></a>
+<span class="sourceLineNo">318</span>            .addCoprocessor(SlowMeCopro.class.getName())<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(f))<a name="line.319"></a>
+<span class="sourceLineNo">320</span>            .build();<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    HTU.getAdmin().createTable(td);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    Table table = HTU.getConnection().getTable(td.getTableName());<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    // basic test: it should work.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    Put p = new Put(row);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    p.addColumn(f, row, row);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    table.put(p);<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>    Get g = new Get(row);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    Result r = table.get(g);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    Assert.assertFalse(r.isStale());<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>    // Add a CF, it should work.<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    TableDescriptor bHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    td = TableDescriptorBuilder.newBuilder(td)<a name="line.334"></a>
+<span class="sourceLineNo">335</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(row))<a name="line.335"></a>
+<span class="sourceLineNo">336</span>            .build();<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    HTU.getAdmin().disableTable(td.getTableName());<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    HTU.getAdmin().modifyTable(td);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    HTU.getAdmin().enableTable(td.getTableName());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    TableDescriptor nHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>    p = new Put(row);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    p.addColumn(row, row, row);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    table.put(p);<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>    g = new Get(row);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    r = table.get(g);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    Assert.assertFalse(r.isStale());<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      g = new Get(row);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      r = table.get(g);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      Assert.assertTrue(r.isStale());<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    } finally {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      SlowMeCopro.cdl.get().countDown();<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      SlowMeCopro.sleepTime.set(0);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    Admin admin = HTU.getAdmin();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    nHdt =admin.getDescriptor(td.getTableName());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span>    admin.disableTable(td.getTableName());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    admin.deleteTable(td.getTableName());<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    admin.close();<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  @SuppressWarnings("deprecation")<a name="line.373"></a>
+<span class="sourceLineNo">374</span>  @Test (timeout=300000)<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  public void testReplicaAndReplication() throws Exception {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testReplicaAndReplication");<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>    HColumnDescriptor fam = new HColumnDescriptor(row);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    hdt.addFamily(fam);<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    HTU.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.384"></a>
 <span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    HTU.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>    Configuration conf2 = HBaseConfiguration.create(HTU.getConfiguration());<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    conf2.set(HConstants.HBASE_CLIENT_INSTANCE_ID, String.valueOf(-1));<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    MiniZooKeeperCluster miniZK = HTU.getZkCluster();<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>    HTU2 = new HBaseTestingUtility(conf2);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    HTU2.setZkCluster(miniZK);<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    HTU2.startMiniCluster(NB_SERVERS);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    LOG.info("Setup second Zk");<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    HTU2.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());<a name="line.400"></a>
-<span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    rpc.setClusterKey(HTU2.getClusterKey());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    admin.addPeer("2", rpc, null);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    admin.close();<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    Put p = new Put(row);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    p.addColumn(row, row, row);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    final Table table = HTU.getConnection().getTable(hdt.getTableName());<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    table.put(p);<a name="line.410"></a>
+<span class="sourceLineNo">386</span>    Configuration conf2 = HBaseConfiguration.create(HTU.getConfiguration());<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    conf2.set(HConstants.HBASE_CLIENT_INSTANCE_ID, String.valueOf(-1));<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    MiniZooKeeperCluster miniZK = HTU.getZkCluster();<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>    HTU2 = new HBaseTestingUtility(conf2);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    HTU2.setZkCluster(miniZK);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    HTU2.startMiniCluster(NB_SERVERS);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    LOG.info("Setup second Zk");<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    HTU2.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>    ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    rpc.setClusterKey(HTU2.getClusterKey());<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    admin.addPeer("2", rpc, null);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    admin.close();<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>    Put p = new Put(row);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    p.addColumn(row, row, row);<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    final Table table = HTU.getConnection().getTable(hdt.getTableName());<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    table.put(p);<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>    HTU.getAdmin().flush(table.getName());<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    LOG.info("Put &amp; flush done on the first cluster. Now doing a get on the same cluster.");<a name="line.410"></a>
 <span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    HTU.getAdmin().flush(table.getName());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    LOG.info("Put &amp; flush done on the first cluster. Now doing a get on the same cluster.");<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      @Override public boolean evaluate() throws Exception {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        try {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          Get g = new Get(row);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          Result r = table.get(g);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          Assert.assertTrue(r.isStale());<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          return !r.isEmpty();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        } finally {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          SlowMeCopro.cdl.get().countDown();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          SlowMeCopro.sleepTime.set(0);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    });<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    table.close();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    LOG.info("stale get on the first cluster done. Now for the second.");<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>    final Table table2 = HTU.getConnection().getTable(hdt.getTableName());<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      @Override public boolean evaluate() throws Exception {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        try {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          Get g = new Get(row);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          Result r = table2.get(g);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          Assert.assertTrue(r.isStale());<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          return !r.isEmpty();<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        } finally {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          SlowMeCopro.cdl.get().countDown();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          SlowMeCopro.sleepTime.set(0);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>        }<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    });<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    table2.close();<a name="line.449"></a>
+<span class="sourceLineNo">412</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      @Override public boolean evaluate() throws Exception {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        try {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          Get g = new Get(row);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>          Result r = table.get(g);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          Assert.assertTrue(r.isStale());<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          return !r.isEmpty();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        } finally {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>          SlowMeCopro.cdl.get().countDown();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          SlowMeCopro.sleepTime.set(0);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    });<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    table.close();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    LOG.info("stale get on the first cluster done. Now for the second.");<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>    final Table table2 = HTU.getConnection().getTable(hdt.getTableName());<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      @Override public boolean evaluate() throws Exception {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        try {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.434"></a>
+<span class="sourceLineNo">435</span>          Get g = new Get(row);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>          Result r = table2.get(g);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>          Assert.assertTrue(r.isStale());<a name="line.438"></a>
+<span class="sourceLineNo">439</span>          return !r.isEmpty();<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        } finally {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>          SlowMeCopro.cdl.get().countDown();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>          SlowMeCopro.sleepTime.set(0);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        }<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    });<a name="line.445"></a>
+<span class="sourceLineNo">446</span>    table2.close();<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    HTU.deleteTable(hdt.getTableName());<a name="line.449"></a>
 <span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    HTU.deleteTable(hdt.getTableName());<a name="line.452"></a>
+<span class="sourceLineNo">451</span>    HTU2.getAdmin().disableTable(hdt.getTableName());<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    HTU2.deleteTable(hdt.getTableName());<a name="line.452"></a>
 <span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>    HTU2.getAdmin().disableTable(hdt.getTableName());<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    HTU2.deleteTable(hdt.getTableName());<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    // We shutdown HTU2 minicluster later, in afterClass(), as shutting down<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    // the minicluster has negative impact of deleting all HConnections in JVM.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  @Test (timeout=30000)<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  public void testBulkLoad() throws IOException {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    // Create table then get the single region for our new table.<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    LOG.debug("Creating test table");<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testBulkLoad");<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.468"></a>
-<span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // create hfiles to load.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    LOG.debug("Creating test data");<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    Path dir = HTU.getDataTestDirOnTestFS("testBulkLoad");<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    final int numRows = 10;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    final byte[] qual = Bytes.toBytes("qual");<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    final byte[] val  = Bytes.toBytes("val");<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    final List&lt;Pair&lt;byte[], String&gt;&gt; famPaths = new ArrayList&lt;&gt;();<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    for (HColumnDescriptor col : hdt.getColumnFamilies()) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      Path hfile = new Path(dir, col.getNameAsString());<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      TestHRegionServerBulkLoad.createHFile(HTU.getTestFileSystem(), hfile, col.getName(),<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        qual, val, numRows);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      famPaths.add(new Pair&lt;&gt;(col.getName(), hfile.toString()));<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    // bulk load HFiles<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    LOG.debug("Loading test data");<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    final ClusterConnection conn = (ClusterConnection) HTU.getAdmin().getConnection();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    table = conn.getTable(hdt.getTableName());<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    final String bulkToken =<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        new SecureBulkLoadClient(HTU.getConfiguration(), table).prepareBulkLoad(conn);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    ClientServiceCallable&lt;Void&gt; callable = new ClientServiceCallable&lt;Void&gt;(conn,<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        hdt.getTableName(), TestHRegionServerBulkLoad.rowkey(0),<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        new RpcControllerFactory(HTU.getConfiguration()).newController(), HConstants.PRIORITY_UNSET) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      @Override<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      protected Void rpcCall() throws Exception {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>        LOG.debug("Going to connect to server " + getLocation() + " for row "<a name="line.495"></a>
-<span class="sourceLineNo">496</span>            + Bytes.toStringBinary(getRow()));<a name="line.496"></a>
-<span class="sourceLineNo">497</span>        SecureBulkLoadClient secureClient = null;<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        byte[] regionName = getLocation().getRegionInfo().getRegionName();<a name="line.498"></a>
-<span class="sourceLineNo">499</span>        try (Table table = conn.getTable(getTableName())) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>          secureClient = new SecureBulkLoadClient(HTU.getConfiguration(), table);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          secureClient.secureBulkLoadHFiles(getStub(), famPaths, regionName,<a name="line.501"></a>
-<span class="sourceLineNo">502</span>              true, null, bulkToken);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        }<a name="line.503"></a>
-<span class="sourceLineNo">504</span>        return null;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    };<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    RpcRetryingCallerFactory factory = new RpcRetryingCallerFactory(HTU.getConfiguration());<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    RpcRetryingCaller&lt;Void&gt; caller = factory.newCaller();<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    caller.callWithRetries(callable, 10000);<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // verify we can read them from the primary<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    LOG.debug("Verifying data load");<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    for (int i = 0; i &lt; numRows; i++) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      byte[] row = TestHRegionServerBulkLoad.rowkey(i);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      Get g = new Get(row);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      Result r = table.get(g);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      Assert.assertFalse(r.isStale());<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    // verify we can read them from the replica<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    LOG.debug("Verifying replica queries");<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    try {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      for (int i = 0; i &lt; numRows; i++) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        byte[] row = TestHRegionServerBulkLoad.rowkey(i);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>        Get g = new Get(row);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        g.setConsistency(Consistency.TIMELINE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        Result r = table.get(g);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        Assert.assertTrue(r.isStale());<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      SlowMeCopro.cdl.get().countDown();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    } finally {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      SlowMeCopro.cdl.get().countDown();<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      SlowMeCopro.sleepTime.set(0);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    HTU.deleteTable(hdt.getTableName());<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  }<a name="line.539"></a>
-<span class="sourceLineNo">540</span><a name="line.540"></a>
-<span class="sourceLineNo">541</span>  @Test<a name="line.541

<TRUNCATED>

[12/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/integration.html b/hbase-build-configuration/hbase-archetypes/integration.html
index 683b893..2476238 100644
--- a/hbase-build-configuration/hbase-archetypes/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/issue-tracking.html
index 375ab44..bb69303 100644
--- a/hbase-build-configuration/hbase-archetypes/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/license.html b/hbase-build-configuration/hbase-archetypes/license.html
index 3d34ad9..115d0eb 100644
--- a/hbase-build-configuration/hbase-archetypes/license.html
+++ b/hbase-build-configuration/hbase-archetypes/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/mail-lists.html b/hbase-build-configuration/hbase-archetypes/mail-lists.html
index bd17984..ff11cb2 100644
--- a/hbase-build-configuration/hbase-archetypes/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/plugin-management.html b/hbase-build-configuration/hbase-archetypes/plugin-management.html
index dacc22c..e2a5092 100644
--- a/hbase-build-configuration/hbase-archetypes/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/plugins.html b/hbase-build-configuration/hbase-archetypes/plugins.html
index d22c884..9ee07ce 100644
--- a/hbase-build-configuration/hbase-archetypes/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/project-info.html b/hbase-build-configuration/hbase-archetypes/project-info.html
index 0a6a4ec..5de1765 100644
--- a/hbase-build-configuration/hbase-archetypes/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/project-summary.html b/hbase-build-configuration/hbase-archetypes/project-summary.html
index 67ebcf2..3c6fafa 100644
--- a/hbase-build-configuration/hbase-archetypes/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/source-repository.html b/hbase-build-configuration/hbase-archetypes/source-repository.html
index f8246ce..4d8c575 100644
--- a/hbase-build-configuration/hbase-archetypes/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/team-list.html b/hbase-build-configuration/hbase-archetypes/team-list.html
index 1ac1a6e..5d56a07 100644
--- a/hbase-build-configuration/hbase-archetypes/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/checkstyle.html b/hbase-build-configuration/hbase-spark/checkstyle.html
index b3d1607..3dfd87b 100644
--- a/hbase-build-configuration/hbase-spark/checkstyle.html
+++ b/hbase-build-configuration/hbase-spark/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -517,7 +517,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependencies.html b/hbase-build-configuration/hbase-spark/dependencies.html
index 1ea5a84..f0856c9 100644
--- a/hbase-build-configuration/hbase-spark/dependencies.html
+++ b/hbase-build-configuration/hbase-spark/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -5666,7 +5666,7 @@ file comparators, endian transformation classes, and much more.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-convergence.html b/hbase-build-configuration/hbase-spark/dependency-convergence.html
index 6ddb56a..3b06e21 100644
--- a/hbase-build-configuration/hbase-spark/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-spark/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-info.html b/hbase-build-configuration/hbase-spark/dependency-info.html
index 1939286..e024521 100644
--- a/hbase-build-configuration/hbase-spark/dependency-info.html
+++ b/hbase-build-configuration/hbase-spark/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-management.html b/hbase-build-configuration/hbase-spark/dependency-management.html
index 13c76a4..46c35bc 100644
--- a/hbase-build-configuration/hbase-spark/dependency-management.html
+++ b/hbase-build-configuration/hbase-spark/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/index.html b/hbase-build-configuration/hbase-spark/index.html
index eb7364b..a976922 100644
--- a/hbase-build-configuration/hbase-spark/index.html
+++ b/hbase-build-configuration/hbase-spark/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/integration.html b/hbase-build-configuration/hbase-spark/integration.html
index 13ad2a2..f3b1b95 100644
--- a/hbase-build-configuration/hbase-spark/integration.html
+++ b/hbase-build-configuration/hbase-spark/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/issue-tracking.html b/hbase-build-configuration/hbase-spark/issue-tracking.html
index ca523fe..c370857 100644
--- a/hbase-build-configuration/hbase-spark/issue-tracking.html
+++ b/hbase-build-configuration/hbase-spark/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/license.html b/hbase-build-configuration/hbase-spark/license.html
index 87ff91c..e9254e0 100644
--- a/hbase-build-configuration/hbase-spark/license.html
+++ b/hbase-build-configuration/hbase-spark/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/mail-lists.html b/hbase-build-configuration/hbase-spark/mail-lists.html
index 6ff6749..ecba8ad 100644
--- a/hbase-build-configuration/hbase-spark/mail-lists.html
+++ b/hbase-build-configuration/hbase-spark/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/plugin-management.html b/hbase-build-configuration/hbase-spark/plugin-management.html
index 16f9b7c..bae742f 100644
--- a/hbase-build-configuration/hbase-spark/plugin-management.html
+++ b/hbase-build-configuration/hbase-spark/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/plugins.html b/hbase-build-configuration/hbase-spark/plugins.html
index 7b9690c..649ea81 100644
--- a/hbase-build-configuration/hbase-spark/plugins.html
+++ b/hbase-build-configuration/hbase-spark/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -238,7 +238,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-info.html b/hbase-build-configuration/hbase-spark/project-info.html
index 76caee7..5f0594e 100644
--- a/hbase-build-configuration/hbase-spark/project-info.html
+++ b/hbase-build-configuration/hbase-spark/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-reports.html b/hbase-build-configuration/hbase-spark/project-reports.html
index 8fad108..81df130 100644
--- a/hbase-build-configuration/hbase-spark/project-reports.html
+++ b/hbase-build-configuration/hbase-spark/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -131,7 +131,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-summary.html b/hbase-build-configuration/hbase-spark/project-summary.html
index 340c9bb..8f7bbe4 100644
--- a/hbase-build-configuration/hbase-spark/project-summary.html
+++ b/hbase-build-configuration/hbase-spark/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/source-repository.html b/hbase-build-configuration/hbase-spark/source-repository.html
index d7c0da4..dff6072 100644
--- a/hbase-build-configuration/hbase-spark/source-repository.html
+++ b/hbase-build-configuration/hbase-spark/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-spark/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/team-list.html b/hbase-build-configuration/hbase-spark/team-list.html
index e7bea15..49bca3a 100644
--- a/hbase-build-configuration/hbase-spark/team-list.html
+++ b/hbase-build-configuration/hbase-spark/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/index.html b/hbase-build-configuration/index.html
index ab0ef2d..8a3aada 100644
--- a/hbase-build-configuration/index.html
+++ b/hbase-build-configuration/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/integration.html b/hbase-build-configuration/integration.html
index e3f1441..1675af5 100644
--- a/hbase-build-configuration/integration.html
+++ b/hbase-build-configuration/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/issue-tracking.html b/hbase-build-configuration/issue-tracking.html
index 6f93198..b20e7be 100644
--- a/hbase-build-configuration/issue-tracking.html
+++ b/hbase-build-configuration/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/license.html b/hbase-build-configuration/license.html
index 566878a..7d56482 100644
--- a/hbase-build-configuration/license.html
+++ b/hbase-build-configuration/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/mail-lists.html b/hbase-build-configuration/mail-lists.html
index 5501518..834b0c2 100644
--- a/hbase-build-configuration/mail-lists.html
+++ b/hbase-build-configuration/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/plugin-management.html b/hbase-build-configuration/plugin-management.html
index 0148c89..498c9c3 100644
--- a/hbase-build-configuration/plugin-management.html
+++ b/hbase-build-configuration/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/plugins.html b/hbase-build-configuration/plugins.html
index d5c3338..fad1cda 100644
--- a/hbase-build-configuration/plugins.html
+++ b/hbase-build-configuration/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/project-info.html b/hbase-build-configuration/project-info.html
index 9e1adb5..1f59ca8 100644
--- a/hbase-build-configuration/project-info.html
+++ b/hbase-build-configuration/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/project-summary.html b/hbase-build-configuration/project-summary.html
index 1e7a385..f3b4899 100644
--- a/hbase-build-configuration/project-summary.html
+++ b/hbase-build-configuration/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/source-repository.html b/hbase-build-configuration/source-repository.html
index 2d59fe5..3505a9d 100644
--- a/hbase-build-configuration/source-repository.html
+++ b/hbase-build-configuration/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/team-list.html b/hbase-build-configuration/team-list.html
index 839d2e5..b83db64 100644
--- a/hbase-build-configuration/team-list.html
+++ b/hbase-build-configuration/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/checkstyle.html b/hbase-shaded-check-invariants/checkstyle.html
index 5e5b5f5..ff41cd3 100644
--- a/hbase-shaded-check-invariants/checkstyle.html
+++ b/hbase-shaded-check-invariants/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependencies.html b/hbase-shaded-check-invariants/dependencies.html
index 5d4baad..e40213b 100644
--- a/hbase-shaded-check-invariants/dependencies.html
+++ b/hbase-shaded-check-invariants/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -2883,7 +2883,7 @@ Jackson JSON processor's data binding functionality.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-convergence.html b/hbase-shaded-check-invariants/dependency-convergence.html
index a30e397..b94fd57 100644
--- a/hbase-shaded-check-invariants/dependency-convergence.html
+++ b/hbase-shaded-check-invariants/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-info.html b/hbase-shaded-check-invariants/dependency-info.html
index e57cf76..15c0493 100644
--- a/hbase-shaded-check-invariants/dependency-info.html
+++ b/hbase-shaded-check-invariants/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-management.html b/hbase-shaded-check-invariants/dependency-management.html
index f1ea2a7..bdd7c94 100644
--- a/hbase-shaded-check-invariants/dependency-management.html
+++ b/hbase-shaded-check-invariants/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/index.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/index.html b/hbase-shaded-check-invariants/index.html
index 44f5af1..ebdd1d7 100644
--- a/hbase-shaded-check-invariants/index.html
+++ b/hbase-shaded-check-invariants/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -122,7 +122,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/integration.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/integration.html b/hbase-shaded-check-invariants/integration.html
index e738b99..6c017d8 100644
--- a/hbase-shaded-check-invariants/integration.html
+++ b/hbase-shaded-check-invariants/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/issue-tracking.html b/hbase-shaded-check-invariants/issue-tracking.html
index 1deefb5..5f65dd8 100644
--- a/hbase-shaded-check-invariants/issue-tracking.html
+++ b/hbase-shaded-check-invariants/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/license.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/license.html b/hbase-shaded-check-invariants/license.html
index d9029c1..abd1d92 100644
--- a/hbase-shaded-check-invariants/license.html
+++ b/hbase-shaded-check-invariants/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/mail-lists.html b/hbase-shaded-check-invariants/mail-lists.html
index 9e9da2d..3903010 100644
--- a/hbase-shaded-check-invariants/mail-lists.html
+++ b/hbase-shaded-check-invariants/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/plugin-management.html b/hbase-shaded-check-invariants/plugin-management.html
index d57f125..b6c0169 100644
--- a/hbase-shaded-check-invariants/plugin-management.html
+++ b/hbase-shaded-check-invariants/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/plugins.html b/hbase-shaded-check-invariants/plugins.html
index 49eb021..930d43b 100644
--- a/hbase-shaded-check-invariants/plugins.html
+++ b/hbase-shaded-check-invariants/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -218,7 +218,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-info.html b/hbase-shaded-check-invariants/project-info.html
index e65900c..f7aed29 100644
--- a/hbase-shaded-check-invariants/project-info.html
+++ b/hbase-shaded-check-invariants/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -170,7 +170,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-reports.html b/hbase-shaded-check-invariants/project-reports.html
index 9f4ea0c..9287aac 100644
--- a/hbase-shaded-check-invariants/project-reports.html
+++ b/hbase-shaded-check-invariants/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-summary.html b/hbase-shaded-check-invariants/project-summary.html
index 182ffbc..331f60a 100644
--- a/hbase-shaded-check-invariants/project-summary.html
+++ b/hbase-shaded-check-invariants/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/source-repository.html b/hbase-shaded-check-invariants/source-repository.html
index eadbdda..f363f21 100644
--- a/hbase-shaded-check-invariants/source-repository.html
+++ b/hbase-shaded-check-invariants/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-shaded-check-invariants/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/team-list.html b/hbase-shaded-check-invariants/team-list.html
index 7d97137..229afdf 100644
--- a/hbase-shaded-check-invariants/team-list.html
+++ b/hbase-shaded-check-invariants/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 27a4925..776f5c1 100644
--- a/index.html
+++ b/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -438,7 +438,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index d661811..bded3de 100644
--- a/integration.html
+++ b/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -296,7 +296,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 60ff12e..29145eb 100644
--- a/issue-tracking.html
+++ b/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -293,7 +293,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 4501d04..c822e25 100644
--- a/license.html
+++ b/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -496,7 +496,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 00abc5d..fdacf34 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -346,7 +346,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index f835cc2..f77b0a1 100644
--- a/metrics.html
+++ b/metrics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -464,7 +464,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index 429f5ba..db302e1 100644
--- a/old_news.html
+++ b/old_news.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -419,7 +419,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index caad511..708d14a 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -441,7 +441,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index b9ac8d6..a071bd9 100644
--- a/plugins.html
+++ b/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -380,7 +380,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 97ec2db..7f4df26 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase™</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -774,7 +774,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 9494d3b..54ca15e 100644
--- a/project-info.html
+++ b/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -340,7 +340,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 290b1fa..2b740f9 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -310,7 +310,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index eb03a2a..6c02f3f 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index be39c99..cc628da 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -313,7 +313,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 


[36/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
index 8b753a0..cd74b3c 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.79">RSGroupAdminEndpoint</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.84">RSGroupAdminEndpoint</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessor.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessor</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></pre>
 </li>
@@ -242,12 +242,20 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;notClearedServers)</code>
+<div class="block">Called after clear dead region servers.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#postDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDeleteTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the deleteTable operation has been requested.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -255,7 +263,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <div class="block">Called before a snapshot is cloned.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
@@ -263,7 +271,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#preCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
@@ -272,14 +280,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called prior to modifying a namespace's properties.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#start-org.apache.hadoop.hbase.CoprocessorEnvironment-">start</a></span>(<a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)</code>
 <div class="block">Called by the <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase"><code>CoprocessorEnvironment</code></a> during it's own startup to initialize the
@@ -306,7 +314,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postAbortProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">post
 Balance</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedCreateTableAct
 ion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCompletedCreateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedMergeRegions
 Action-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postCompletedModifyTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedTruncateTableAction</a>, <a href
 ="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCreateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDeleteNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-or
 g.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postEnableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../../../org/apache/hadoo
 p/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerConfig</a>, <a href="../../../../../org
 /apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">postGetTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">postGetTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postListNamespaceDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-jav
 a.lang.String-">postListReplicationPeers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postListSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitAction</a>, <a href="../../../../../org/apache/hadoop/hbase/copr
 ocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postModifyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">postMove</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTable
 s-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer
 </a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction
 </a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapsh
 ot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache
 .hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBala
 nce-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegi
 onServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../org/apache/had
 oop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</
 a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a>, <a href="../../../../../org/apache/hadoop/hbase/coproce
 ssor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceD
 escriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverCont
 ext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apac
 he.hadoop.hbase.client.TableDescriptor-">preModifyTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a>, <a href="../../../../../org/apach
 e/hadoop/hbase/coprocessor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache
 .hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetTableQuota-org.apache.hadoop.hbas
 e.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preShutdow
 n-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegionAfterMETAAction</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a>, <a href="../
 ../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postAbortProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">post
 Balance</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCompletedCreateTableAction</a>, <a href="../../../../../or
 g/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../org
 /apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postCompletedModifyTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedTruncateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace<
 /a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCreateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDeleteNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#post
 DisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postEnableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">postGetTableDescriptors</a>, <a h
 ref="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">postGetTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postListNamespaceDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoo
 p.hbase.client.SnapshotDescription-">postListSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../org/apache/hadoo
 p/hbase/coprocessor/MasterObserver.html#postModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postModifyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">postMove</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#
 postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>, <a href="../.
 ./../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <a href="../../.
 ./../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coproc
 essor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>, <a href="../..
 /../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replicat
 ion.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org.apache.hadoop.
 hbase.coprocessor.ObserverContext-">preBalance</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.h
 adoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/
 MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a>, <a href="../../../
 ../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.ht
 ml#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a>, <a hre
 f="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.
 hbase.client.RegionInfo:A-">preMergeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client
 .TableDescriptor-">preModifyTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coproce
 ssor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a>, <a href="
 ../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.Mast
 erSwitchType-">preSetSplitOrMergeEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName
 -org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/Master
 Observer.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegionAfterMETAAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/Master
 Observer.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></code></li>
 </ul>
 </li>
 </ul>
@@ -328,7 +336,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.80">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.85">LOG</a></pre>
 </li>
 </ul>
 <a name="master">
@@ -337,7 +345,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>master</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.82">master</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.87">master</a></pre>
 </li>
 </ul>
 <a name="groupInfoManager">
@@ -346,7 +354,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>groupInfoManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.85">groupInfoManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.90">groupInfoManager</a></pre>
 </li>
 </ul>
 <a name="groupAdminServer">
@@ -355,7 +363,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>groupAdminServer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupAdminServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.86">groupAdminServer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupAdminServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.91">groupAdminServer</a></pre>
 </li>
 </ul>
 <a name="groupAdminService">
@@ -364,7 +372,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockListLast">
 <li class="blockList">
 <h4>groupAdminService</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.87">groupAdminService</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.92">groupAdminService</a></pre>
 </li>
 </ul>
 </li>
@@ -381,7 +389,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSGroupAdminEndpoint</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.79">RSGroupAdminEndpoint</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.84">RSGroupAdminEndpoint</a>()</pre>
 </li>
 </ul>
 </li>
@@ -398,7 +406,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.90">start</a>(<a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.95">start</a>(<a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html#start-org.apache.hadoop.hbase.CoprocessorEnvironment-">Coprocessor</a></code></span></div>
 <div class="block">Called by the <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase"><code>CoprocessorEnvironment</code></a> during it's own startup to initialize the
@@ -417,7 +425,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>getServices</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;com.google.protobuf.Service&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.105">getServices</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;com.google.protobuf.Service&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.110">getServices</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html#getServices--">Coprocessor</a></code></span></div>
 <div class="block">Coprocessor endpoints providing protobuf services should override this method.</div>
 <dl>
@@ -435,7 +443,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterObserver</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.110">getMasterObserver</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.115">getMasterObserver</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessor.html#getMasterObserver--">getMasterObserver</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessor.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessor</a></code></dd>
@@ -448,7 +456,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>getGroupInfoManager</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.114">getGroupInfoManager</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.119">getGroupInfoManager</a>()</pre>
 </li>
 </ul>
 <a name="assignTableToGroup-org.apache.hadoop.hbase.client.TableDescriptor-">
@@ -457,7 +465,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>assignTableToGroup</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.294">assignTableToGroup</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.319">assignTableToGroup</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -471,7 +479,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>preCreateTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.318">preCreateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.343">preCreateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
                            <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regions)
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -497,7 +505,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>postDeleteTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.325">postDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.350">postDeleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">MasterObserver</a></code></span></div>
@@ -520,7 +528,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>preCreateNamespace</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.340">preCreateNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.365">preCreateNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">MasterObserver</a></code></span></div>
@@ -543,7 +551,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <ul class="blockList">
 <li class="blockList">
 <h4>preModifyNamespace</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.349">preModifyNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.374">preModifyNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">MasterObserver</a></code></span></div>
@@ -562,10 +570,10 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <a name="preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>preCloneSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.355">preCloneSnapshot</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.380">preCloneSnapshot</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                              <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
                              <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -584,6 +592,26 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 </dl>
 </li>
 </ul>
+<a name="postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>postClearDeadServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.386">postClearDeadServers</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-

<TRUNCATED>

[24/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
index 1e0d2de..95a9f97 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
@@ -27,715 +27,733 @@
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import static org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper.shouldRetryCreate;<a name="line.20"></a>
 <span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.io.InterruptedIOException;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.lang.reflect.Field;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.ArrayDeque;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.Comparator;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.Deque;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.Iterator;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.List;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.Queue;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.SortedSet;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.TreeSet;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.concurrent.ExecutorService;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.concurrent.Executors;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.concurrent.locks.Condition;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.concurrent.locks.Lock;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import java.util.concurrent.locks.ReentrantLock;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import java.util.function.Supplier;<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.commons.logging.Log;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.commons.logging.LogFactory;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.conf.Configuration;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.fs.FileSystem;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.fs.Path;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.trace.TraceUtil;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.ConnectionUtils;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutput;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper.NameNodeException;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.wal.AsyncFSWALProvider;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.wal.WALEdit;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.wal.WALKey;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.wal.WALProvider.AsyncWriter;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.shaded.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.Channel;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.shaded.io.netty.util.concurrent.SingleThreadEventExecutor;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.htrace.core.Span;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.htrace.core.TraceScope;<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>import com.lmax.disruptor.RingBuffer;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import com.lmax.disruptor.Sequence;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import com.lmax.disruptor.Sequencer;<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>/**<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * An asynchronous implementation of FSWAL.<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * &lt;p&gt;<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * Here 'waitingConsumePayloads' acts as the RingBuffer in FSHLog.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * &lt;p&gt;<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * For append, we process it as follow:<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * &lt;ol&gt;<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * &lt;li&gt;In the caller thread(typically, in the rpc handler thread):<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * &lt;ol&gt;<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * &lt;li&gt;Insert the entry into 'waitingConsumePayloads'. Use ringbuffer sequence as txid.&lt;/li&gt;<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * &lt;li&gt;Schedule the consumer task if needed. See {@link #shouldScheduleConsumer()} for more details.<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * &lt;/li&gt;<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * &lt;/ol&gt;<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * &lt;/li&gt;<a name="line.83"></a>
-<span class="sourceLineNo">084</span> * &lt;li&gt;In the consumer task(in the EventLoop thread)<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * &lt;ol&gt;<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * &lt;li&gt;Poll the entry from {@link #waitingConsumePayloads} and insert it into<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * {@link #toWriteAppends}&lt;/li&gt;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> * &lt;li&gt;Poll the entry from {@link #toWriteAppends}, append it to the AsyncWriter, and insert it into<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * {@link #unackedAppends}&lt;/li&gt;<a name="line.89"></a>
-<span class="sourceLineNo">090</span> * &lt;li&gt;If the buffered size reaches {@link #batchSize}, or there is a sync request, then we call<a name="line.90"></a>
-<span class="sourceLineNo">091</span> * sync on the AsyncWriter.&lt;/li&gt;<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * &lt;li&gt;In the callback methods:<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * &lt;ul&gt;<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * &lt;li&gt;If succeeded, poll the entry from {@link #unackedAppends} and drop it.&lt;/li&gt;<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * &lt;li&gt;If failed, add all the entries in {@link #unackedAppends} back to {@link #toWriteAppends} and<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * wait for writing them again.&lt;/li&gt;<a name="line.96"></a>
-<span class="sourceLineNo">097</span> * &lt;/ul&gt;<a name="line.97"></a>
-<span class="sourceLineNo">098</span> * &lt;/li&gt;<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * &lt;/ol&gt;<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * &lt;/li&gt;<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * &lt;/ol&gt;<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * For sync, the processing stages are almost same. And different from FSHLog, we will open a new<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * writer and rewrite unacked entries to the new writer and sync again if we hit a sync error.<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * &lt;p&gt;<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * Here we only describe the logic of doReplaceWriter. The main logic of rollWriter is same with<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * FSHLog.&lt;br&gt;<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * For a normal roll request(for example, we have reached the log roll size):<a name="line.107"></a>
-<span class="sourceLineNo">108</span> * &lt;ol&gt;<a name="line.108"></a>
-<span class="sourceLineNo">109</span> * &lt;li&gt;In the log roller thread, we will set {@link #waitingRoll} to true and<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * {@link #readyForRolling} to false, and then wait on {@link #readyForRolling}(see<a name="line.110"></a>
-<span class="sourceLineNo">111</span> * {@link #waitForSafePoint()}).&lt;/li&gt;<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * &lt;li&gt;In the consumer thread, we will stop polling entries from {@link #waitingConsumePayloads} if<a name="line.112"></a>
-<span class="sourceLineNo">113</span> * {@link #waitingRoll} is true, and also stop writing the entries in {@link #toWriteAppends} out.<a name="line.113"></a>
-<span class="sourceLineNo">114</span> * &lt;/li&gt;<a name="line.114"></a>
-<span class="sourceLineNo">115</span> * &lt;li&gt;If there are unflush data in the writer, sync them.&lt;/li&gt;<a name="line.115"></a>
-<span class="sourceLineNo">116</span> * &lt;li&gt;When all out-going sync request is finished, i.e, the {@link #unackedAppends} is empty,<a name="line.116"></a>
-<span class="sourceLineNo">117</span> * signal the {@link #readyForRollingCond}.&lt;/li&gt;<a name="line.117"></a>
-<span class="sourceLineNo">118</span> * &lt;li&gt;Back to the log roller thread, now we can confirm that there are no out-going entries, i.e.,<a name="line.118"></a>
-<span class="sourceLineNo">119</span> * we reach a safe point. So it is safe to replace old writer with new writer now.&lt;/li&gt;<a name="line.119"></a>
-<span class="sourceLineNo">120</span> * &lt;li&gt;Set {@link #writerBroken} and {@link #waitingRoll} to false, cancel log roller exit checker<a name="line.120"></a>
-<span class="sourceLineNo">121</span> * if any(see the comments in the {@link #syncFailed(Throwable)} method to see why we need a checker<a name="line.121"></a>
-<span class="sourceLineNo">122</span> * here).&lt;/li&gt;<a name="line.122"></a>
-<span class="sourceLineNo">123</span> * &lt;li&gt;Schedule the consumer task.&lt;/li&gt;<a name="line.123"></a>
-<span class="sourceLineNo">124</span> * &lt;li&gt;Schedule a background task to close the old writer.&lt;/li&gt;<a name="line.124"></a>
-<span class="sourceLineNo">125</span> * &lt;/ol&gt;<a name="line.125"></a>
-<span class="sourceLineNo">126</span> * For a broken writer roll request, the only difference is that we can bypass the wait for safe<a name="line.126"></a>
-<span class="sourceLineNo">127</span> * point stage. See the comments in the {@link #syncFailed(Throwable)} method for more details.<a name="line.127"></a>
-<span class="sourceLineNo">128</span> */<a name="line.128"></a>
-<span class="sourceLineNo">129</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.129"></a>
-<span class="sourceLineNo">130</span>public class AsyncFSWAL extends AbstractFSWAL&lt;AsyncWriter&gt; {<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>  private static final Log LOG = LogFactory.getLog(AsyncFSWAL.class);<a name="line.132"></a>
+<span class="sourceLineNo">022</span>import com.lmax.disruptor.RingBuffer;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import com.lmax.disruptor.Sequence;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import com.lmax.disruptor.Sequencer;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.io.InterruptedIOException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.lang.reflect.Field;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.ArrayDeque;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.Comparator;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.Deque;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.Iterator;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.List;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Queue;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.SortedSet;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.TreeSet;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import java.util.concurrent.ExecutorService;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.util.concurrent.Executors;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.util.concurrent.LinkedBlockingQueue;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import java.util.concurrent.ThreadPoolExecutor;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import java.util.concurrent.TimeUnit;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import java.util.concurrent.locks.Condition;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import java.util.concurrent.locks.Lock;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import java.util.concurrent.locks.ReentrantLock;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import java.util.function.Supplier;<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.commons.logging.Log;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.commons.logging.LogFactory;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.conf.Configuration;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.fs.FileSystem;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.fs.Path;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.ConnectionUtils;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.io.asyncfs.AsyncFSOutput;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper.NameNodeException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.trace.TraceUtil;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.wal.AsyncFSWALProvider;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.wal.WALEdit;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.wal.WALKey;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.wal.WALProvider.AsyncWriter;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hdfs.protocol.DatanodeInfo;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.htrace.core.TraceScope;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.shaded.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.Channel;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.shaded.io.netty.util.concurrent.SingleThreadEventExecutor;<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>/**<a name="line.74"></a>
+<span class="sourceLineNo">075</span> * An asynchronous implementation of FSWAL.<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * &lt;p&gt;<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * Here 'waitingConsumePayloads' acts as the RingBuffer in FSHLog.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * &lt;p&gt;<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * For append, we process it as follow:<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * &lt;ol&gt;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * &lt;li&gt;In the caller thread(typically, in the rpc handler thread):<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * &lt;ol&gt;<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * &lt;li&gt;Insert the entry into 'waitingConsumePayloads'. Use ringbuffer sequence as txid.&lt;/li&gt;<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * &lt;li&gt;Schedule the consumer task if needed. See {@link #shouldScheduleConsumer()} for more details.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * &lt;/li&gt;<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * &lt;/ol&gt;<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * &lt;/li&gt;<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * &lt;li&gt;In the consumer task(executed in a single threaded thread pool)<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * &lt;ol&gt;<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * &lt;li&gt;Poll the entry from {@link #waitingConsumePayloads} and insert it into<a name="line.90"></a>
+<span class="sourceLineNo">091</span> * {@link #toWriteAppends}&lt;/li&gt;<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * &lt;li&gt;Poll the entry from {@link #toWriteAppends}, append it to the AsyncWriter, and insert it into<a name="line.92"></a>
+<span class="sourceLineNo">093</span> * {@link #unackedAppends}&lt;/li&gt;<a name="line.93"></a>
+<span class="sourceLineNo">094</span> * &lt;li&gt;If the buffered size reaches {@link #batchSize}, or there is a sync request, then we call<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * sync on the AsyncWriter.&lt;/li&gt;<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * &lt;li&gt;In the callback methods:<a name="line.96"></a>
+<span class="sourceLineNo">097</span> * &lt;ul&gt;<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * &lt;li&gt;If succeeded, poll the entry from {@link #unackedAppends} and drop it.&lt;/li&gt;<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * &lt;li&gt;If failed, add all the entries in {@link #unackedAppends} back to {@link #toWriteAppends} and<a name="line.99"></a>
+<span class="sourceLineNo">100</span> * wait for writing them again.&lt;/li&gt;<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * &lt;/ul&gt;<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * &lt;/li&gt;<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * &lt;/ol&gt;<a name="line.103"></a>
+<span class="sourceLineNo">104</span> * &lt;/li&gt;<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * &lt;/ol&gt;<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * For sync, the processing stages are almost same. And different from FSHLog, we will open a new<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * writer and rewrite unacked entries to the new writer and sync again if we hit a sync error.<a name="line.107"></a>
+<span class="sourceLineNo">108</span> * &lt;p&gt;<a name="line.108"></a>
+<span class="sourceLineNo">109</span> * Here we only describe the logic of doReplaceWriter. The main logic of rollWriter is same with<a name="line.109"></a>
+<span class="sourceLineNo">110</span> * FSHLog.&lt;br&gt;<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * For a normal roll request(for example, we have reached the log roll size):<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * &lt;ol&gt;<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * &lt;li&gt;In the log roller thread, we will set {@link #waitingRoll} to true and<a name="line.113"></a>
+<span class="sourceLineNo">114</span> * {@link #readyForRolling} to false, and then wait on {@link #readyForRolling}(see<a name="line.114"></a>
+<span class="sourceLineNo">115</span> * {@link #waitForSafePoint()}).&lt;/li&gt;<a name="line.115"></a>
+<span class="sourceLineNo">116</span> * &lt;li&gt;In the consumer thread, we will stop polling entries from {@link #waitingConsumePayloads} if<a name="line.116"></a>
+<span class="sourceLineNo">117</span> * {@link #waitingRoll} is true, and also stop writing the entries in {@link #toWriteAppends} out.<a name="line.117"></a>
+<span class="sourceLineNo">118</span> * &lt;/li&gt;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> * &lt;li&gt;If there are unflush data in the writer, sync them.&lt;/li&gt;<a name="line.119"></a>
+<span class="sourceLineNo">120</span> * &lt;li&gt;When all out-going sync request is finished, i.e, the {@link #unackedAppends} is empty,<a name="line.120"></a>
+<span class="sourceLineNo">121</span> * signal the {@link #readyForRollingCond}.&lt;/li&gt;<a name="line.121"></a>
+<span class="sourceLineNo">122</span> * &lt;li&gt;Back to the log roller thread, now we can confirm that there are no out-going entries, i.e.,<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * we reach a safe point. So it is safe to replace old writer with new writer now.&lt;/li&gt;<a name="line.123"></a>
+<span class="sourceLineNo">124</span> * &lt;li&gt;Set {@link #writerBroken} and {@link #waitingRoll} to false.&lt;/li&gt;<a name="line.124"></a>
+<span class="sourceLineNo">125</span> * &lt;li&gt;Schedule the consumer task.&lt;/li&gt;<a name="line.125"></a>
+<span class="sourceLineNo">126</span> * &lt;li&gt;Schedule a background task to close the old writer.&lt;/li&gt;<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * &lt;/ol&gt;<a name="line.127"></a>
+<span class="sourceLineNo">128</span> * For a broken writer roll request, the only difference is that we can bypass the wait for safe<a name="line.128"></a>
+<span class="sourceLineNo">129</span> * point stage.<a name="line.129"></a>
+<span class="sourceLineNo">130</span> */<a name="line.130"></a>
+<span class="sourceLineNo">131</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.131"></a>
+<span class="sourceLineNo">132</span>public class AsyncFSWAL extends AbstractFSWAL&lt;AsyncWriter&gt; {<a name="line.132"></a>
 <span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  private static final Comparator&lt;SyncFuture&gt; SEQ_COMPARATOR = (o1, o2) -&gt; {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    int c = Long.compare(o1.getTxid(), o2.getTxid());<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    return c != 0 ? c : Integer.compare(System.identityHashCode(o1), System.identityHashCode(o2));<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  };<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static final String WAL_BATCH_SIZE = "hbase.wal.batch.size";<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  public static final long DEFAULT_WAL_BATCH_SIZE = 64L * 1024;<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>  public static final String ASYNC_WAL_CREATE_MAX_RETRIES = "hbase.wal.async.create.retries";<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  public static final int DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES = 10;<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private final EventLoop eventLoop;<a name="line.145"></a>
+<span class="sourceLineNo">134</span>  private static final Log LOG = LogFactory.getLog(AsyncFSWAL.class);<a name="line.134"></a>
+<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">136</span>  private static final Comparator&lt;SyncFuture&gt; SEQ_COMPARATOR = (o1, o2) -&gt; {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    int c = Long.compare(o1.getTxid(), o2.getTxid());<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    return c != 0 ? c : Integer.compare(System.identityHashCode(o1), System.identityHashCode(o2));<a name="line.138"></a>
+<span class="sourceLineNo">139</span>  };<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>  public static final String WAL_BATCH_SIZE = "hbase.wal.batch.size";<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  public static final long DEFAULT_WAL_BATCH_SIZE = 64L * 1024;<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>  public static final String ASYNC_WAL_CREATE_MAX_RETRIES = "hbase.wal.async.create.retries";<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  public static final int DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES = 10;<a name="line.145"></a>
 <span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>  private final Class&lt;? extends Channel&gt; channelClass;<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>  private final Lock consumeLock = new ReentrantLock();<a name="line.149"></a>
+<span class="sourceLineNo">147</span>  public static final String ASYNC_WAL_USE_SHARED_EVENT_LOOP =<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    "hbase.wal.async.use-shared-event-loop";<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  public static final boolean DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP = true;<a name="line.149"></a>
 <span class="sourceLineNo">150</span><a name="line.150"></a>
-<span class="sourceLineNo">151</span>  private final Runnable consumer = this::consume;<a name="line.151"></a>
+<span class="sourceLineNo">151</span>  private final EventLoopGroup eventLoopGroup;<a name="line.151"></a>
 <span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  // check if there is already a consumer task in the event loop's task queue<a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private final Supplier&lt;Boolean&gt; hasConsumerTask;<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  // new writer is created and we are waiting for old writer to be closed.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  private volatile boolean waitingRoll;<a name="line.157"></a>
+<span class="sourceLineNo">153</span>  private final ExecutorService consumeExecutor;<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private final Class&lt;? extends Channel&gt; channelClass;<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private final Lock consumeLock = new ReentrantLock();<a name="line.157"></a>
 <span class="sourceLineNo">158</span><a name="line.158"></a>
-<span class="sourceLineNo">159</span>  private boolean readyForRolling;<a name="line.159"></a>
+<span class="sourceLineNo">159</span>  private final Runnable consumer = this::consume;<a name="line.159"></a>
 <span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  private final Condition readyForRollingCond = consumeLock.newCondition();<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  private final RingBuffer&lt;RingBufferTruck&gt; waitingConsumePayloads;<a name="line.163"></a>
-<span class="sourceLineNo">164</span><a name="line.164"></a>
-<span class="sourceLineNo">165</span>  private final Sequence waitingConsumePayloadsGatingSequence;<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>  private final AtomicBoolean consumerScheduled = new AtomicBoolean(false);<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span>  // writer is broken and rollWriter is needed.<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  private volatile boolean writerBroken;<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  private final long batchSize;<a name="line.172"></a>
+<span class="sourceLineNo">161</span>  // check if there is already a consumer task in the event loop's task queue<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  private final Supplier&lt;Boolean&gt; hasConsumerTask;<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  private static final int MAX_EPOCH = 0x3FFFFFFF;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  // the lowest bit is waitingRoll, which means new writer is created and we are waiting for old<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  // writer to be closed.<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  // the second lowest bit is writerBorken which means the current writer is broken and rollWriter<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  // is needed.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  // all other bits are the epoch number of the current writer, this is used to detect whether the<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  // writer is still the one when you issue the sync.<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  // notice that, modification to this field is only allowed under the protection of consumeLock.<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  private volatile int epochAndState;<a name="line.172"></a>
 <span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>  private final int createMaxRetries;<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>  private final ExecutorService closeExecutor = Executors.newCachedThreadPool(<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    new ThreadFactoryBuilder().setDaemon(true).setNameFormat("Close-WAL-Writer-%d").build());<a name="line.177"></a>
+<span class="sourceLineNo">174</span>  // used to guard the log roll request when we exceed the log roll size.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  private boolean rollRequested;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>  private boolean readyForRolling;<a name="line.177"></a>
 <span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  private volatile AsyncFSOutput fsOut;<a name="line.179"></a>
+<span class="sourceLineNo">179</span>  private final Condition readyForRollingCond = consumeLock.newCondition();<a name="line.179"></a>
 <span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  private final Deque&lt;FSWALEntry&gt; toWriteAppends = new ArrayDeque&lt;&gt;();<a name="line.181"></a>
+<span class="sourceLineNo">181</span>  private final RingBuffer&lt;RingBufferTruck&gt; waitingConsumePayloads;<a name="line.181"></a>
 <span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  private final Deque&lt;FSWALEntry&gt; unackedAppends = new ArrayDeque&lt;&gt;();<a name="line.183"></a>
+<span class="sourceLineNo">183</span>  private final Sequence waitingConsumePayloadsGatingSequence;<a name="line.183"></a>
 <span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>  private final SortedSet&lt;SyncFuture&gt; syncFutures = new TreeSet&lt;&gt;(SEQ_COMPARATOR);<a name="line.185"></a>
+<span class="sourceLineNo">185</span>  private final AtomicBoolean consumerScheduled = new AtomicBoolean(false);<a name="line.185"></a>
 <span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>  // the highest txid of WAL entries being processed<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private long highestProcessedAppendTxid;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  // file length when we issue last sync request on the writer<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private long fileLengthAtLastSync;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private long highestProcessedAppendTxidAtLastSync;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  public AsyncFSWAL(FileSystem fs, Path rootDir, String logDir, String archiveDir,<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      Configuration conf, List&lt;WALActionsListener&gt; listeners, boolean failIfWALExists,<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      String prefix, String suffix, EventLoop eventLoop, Class&lt;? extends Channel&gt; channelClass)<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      throws FailedLogCloseException, IOException {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    super(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix, suffix);<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    this.eventLoop = eventLoop;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    this.channelClass = channelClass;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    Supplier&lt;Boolean&gt; hasConsumerTask;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    if (eventLoop instanceof SingleThreadEventExecutor) {<a name="line.203"></a>
+<span class="sourceLineNo">187</span>  private final long batchSize;<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final int createMaxRetries;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  private final ExecutorService closeExecutor = Executors.newCachedThreadPool(<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    new ThreadFactoryBuilder().setDaemon(true).setNameFormat("Close-WAL-Writer-%d").build());<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>  private volatile AsyncFSOutput fsOut;<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>  private final Deque&lt;FSWALEntry&gt; toWriteAppends = new ArrayDeque&lt;&gt;();<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>  private final Deque&lt;FSWALEntry&gt; unackedAppends = new ArrayDeque&lt;&gt;();<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>  private final SortedSet&lt;SyncFuture&gt; syncFutures = new TreeSet&lt;&gt;(SEQ_COMPARATOR);<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>  // the highest txid of WAL entries being processed<a name="line.202"></a>
+<span class="sourceLineNo">203</span>  private long highestProcessedAppendTxid;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>      try {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>        Field field = SingleThreadEventExecutor.class.getDeclaredField("taskQueue");<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        field.setAccessible(true);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>        Queue&lt;?&gt; queue = (Queue&lt;?&gt;) field.get(eventLoop);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        hasConsumerTask = () -&gt; queue.peek() == consumer;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      } catch (Exception e) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        LOG.warn("Can not get task queue of " + eventLoop + ", this is not necessary, just give up",<a name="line.211"></a>
-<span class="sourceLineNo">212</span>          e);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        hasConsumerTask = () -&gt; false;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    } else {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      hasConsumerTask = () -&gt; false;<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    this.hasConsumerTask = hasConsumerTask;<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    int preallocatedEventCount =<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        this.conf.getInt("hbase.regionserver.wal.disruptor.event.count", 1024 * 16);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    waitingConsumePayloads =<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        RingBuffer.createMultiProducer(RingBufferTruck::new, preallocatedEventCount);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    waitingConsumePayloadsGatingSequence = new Sequence(Sequencer.INITIAL_CURSOR_VALUE);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    waitingConsumePayloads.addGatingSequences(waitingConsumePayloadsGatingSequence);<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>    // inrease the ringbuffer sequence so our txid is start from 1<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    waitingConsumePayloads.publish(waitingConsumePayloads.next());<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    waitingConsumePayloadsGatingSequence.set(waitingConsumePayloads.getCursor());<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    batchSize = conf.getLong(WAL_BATCH_SIZE, DEFAULT_WAL_BATCH_SIZE);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    createMaxRetries =<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        conf.getInt(ASYNC_WAL_CREATE_MAX_RETRIES, DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    rollWriter();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>  // return whether we have successfully set readyForRolling to true.<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  private boolean trySetReadyForRolling() {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    // Check without holding lock first. Usually we will just return here.<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    // waitingRoll is volatile and unacedEntries is only accessed inside event loop so it is safe to<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    // check them outside the consumeLock.<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    if (!waitingRoll || !unackedAppends.isEmpty()) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      return false;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    consumeLock.lock();<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    try {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      // 1. a roll is requested<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      // 2. all out-going entries have been acked(we have confirmed above).<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      if (waitingRoll) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        readyForRolling = true;<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        readyForRollingCond.signalAll();<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        return true;<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      } else {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        return false;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      }<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    } finally {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      consumeLock.unlock();<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    }<a name="line.257"></a>
+<span class="sourceLineNo">205</span>  // file length when we issue last sync request on the writer<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  private long fileLengthAtLastSync;<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private long highestProcessedAppendTxidAtLastSync;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  public AsyncFSWAL(FileSystem fs, Path rootDir, String logDir, String archiveDir,<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      Configuration conf, List&lt;WALActionsListener&gt; listeners, boolean failIfWALExists,<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      String prefix, String suffix, EventLoopGroup eventLoopGroup,<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      Class&lt;? extends Channel&gt; channelClass) throws FailedLogCloseException, IOException {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    super(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix, suffix);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    this.eventLoopGroup = eventLoopGroup;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.channelClass = channelClass;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    Supplier&lt;Boolean&gt; hasConsumerTask;<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    if (conf.getBoolean(ASYNC_WAL_USE_SHARED_EVENT_LOOP, DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP)) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      this.consumeExecutor = eventLoopGroup.next();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      if (consumeExecutor instanceof SingleThreadEventExecutor) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        try {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          Field field = SingleThreadEventExecutor.class.getDeclaredField("taskQueue");<a name="line.222"></a>
+<span class="sourceLineNo">223</span>          field.setAccessible(true);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>          Queue&lt;?&gt; queue = (Queue&lt;?&gt;) field.get(consumeExecutor);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>          hasConsumerTask = () -&gt; queue.peek() == consumer;<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        } catch (Exception e) {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          LOG.warn("Can not get task queue of " + consumeExecutor +<a name="line.227"></a>
+<span class="sourceLineNo">228</span>            ", this is not necessary, just give up", e);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          hasConsumerTask = () -&gt; false;<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        }<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      } else {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        hasConsumerTask = () -&gt; false;<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    } else {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      ThreadPoolExecutor threadPool =<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue&lt;Runnable&gt;(),<a name="line.236"></a>
+<span class="sourceLineNo">237</span>            new ThreadFactoryBuilder().setNameFormat("AsyncFSWAL-%d").setDaemon(true).build());<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      hasConsumerTask = () -&gt; threadPool.getQueue().peek() == consumer;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      this.consumeExecutor = threadPool;<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>    this.hasConsumerTask = hasConsumerTask;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    int preallocatedEventCount =<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      conf.getInt("hbase.regionserver.wal.disruptor.event.count", 1024 * 16);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    waitingConsumePayloads =<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      RingBuffer.createMultiProducer(RingBufferTruck::new, preallocatedEventCount);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    waitingConsumePayloadsGatingSequence = new Sequence(Sequencer.INITIAL_CURSOR_VALUE);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    waitingConsumePayloads.addGatingSequences(waitingConsumePayloadsGatingSequence);<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    // inrease the ringbuffer sequence so our txid is start from 1<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    waitingConsumePayloads.publish(waitingConsumePayloads.next());<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    waitingConsumePayloadsGatingSequence.set(waitingConsumePayloads.getCursor());<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    batchSize = conf.getLong(WAL_BATCH_SIZE, DEFAULT_WAL_BATCH_SIZE);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    createMaxRetries =<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      conf.getInt(ASYNC_WAL_CREATE_MAX_RETRIES, DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    rollWriter();<a name="line.257"></a>
 <span class="sourceLineNo">258</span>  }<a name="line.258"></a>
 <span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  private void syncFailed(Throwable error) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    LOG.warn("sync failed", error);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    // Here we depends on the implementation of FanOutOneBlockAsyncDFSOutput and netty.<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    // When error occur, FanOutOneBlockAsyncDFSOutput will fail all pending flush requests. It<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    // is execute inside EventLoop. And in DefaultPromise in netty, it will notifyListener<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    // directly if it is already in the EventLoop thread. And in the listener method, it will<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    // call us. So here we know that all failed flush request will call us continuously, and<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    // before the last one finish, no other task can be executed in EventLoop. So here we are<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    // safe to use writerBroken as a guard.<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    // Do not forget to revisit this if we change the implementation of<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    // FanOutOneBlockAsyncDFSOutput!<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    consumeLock.lock();<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    try {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      if (writerBroken) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        return;<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      }<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      writerBroken = true;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      if (waitingRoll) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        readyForRolling = true;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        readyForRollingCond.signalAll();<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      }<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    } finally {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      consumeLock.unlock();<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    }<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    for (Iterator&lt;FSWALEntry&gt; iter = unackedAppends.descendingIterator(); iter.hasNext();) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      toWriteAppends.addFirst(iter.next());<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    highestUnsyncedTxid = highestSyncedTxid.get();<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    // request a roll.<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    requestLogRoll();<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>  private void syncCompleted(AsyncWriter writer, long processedTxid, long startTimeNs) {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    highestSyncedTxid.set(processedTxid);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    for (Iterator&lt;FSWALEntry&gt; iter = unackedAppends.iterator(); iter.hasNext();) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      if (iter.next().getTxid() &lt;= processedTxid) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>        iter.remove();<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      } else {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        break;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      }<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    postSync(System.nanoTime() - startTimeNs, finishSync(true));<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    // Ideally, we should set a flag to indicate that the log roll has already been requested for<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    // the current writer and give up here, and reset the flag when roll is finished. But we<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    // finish roll in the log roller thread so the flag need to be set by different thread which<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    // typically means we need to use a lock to protect it and do fencing. As the log roller will<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    // aggregate the roll requests of the same WAL, so it is safe to call requestLogRoll multiple<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    // times before the roll actual happens. But we need to stop if we set readyForRolling to true<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // and wake up the log roller thread waiting in waitForSafePoint as the rollWriter call may<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // return firstly and then we run the code below and request a roll on the new writer.<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    if (trySetReadyForRolling()) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      // we have just finished a roll, then do not need to check for log rolling, the writer will be<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      // closed soon.<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      return;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    }<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    if (writer.getLength() &lt; logrollsize) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      return;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    if (!rollWriterLock.tryLock()) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      return;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    }<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    try {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      requestLogRoll();<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    } finally {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      rollWriterLock.unlock();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    }<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  private void sync(AsyncWriter writer) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    fileLengthAtLastSync = writer.getLength();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    long currentHighestProcessedAppendTxid = highestProcessedAppendTxid;<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    highestProcessedAppendTxidAtLastSync = currentHighestProcessedAppendTxid;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    final long startTimeNs = System.nanoTime();<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    writer.sync().whenComplete((result, error) -&gt; {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      if (error != null) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        syncFailed(error);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      } else {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        syncCompleted(writer, currentHighestProcessedAppendTxid, startTimeNs);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    });<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  private void addTimeAnnotation(SyncFuture future, String annotation) {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    TraceUtil.addTimelineAnnotation(annotation);<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    //TODO handle htrace API change, see HBASE-18895<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    //future.setSpan(scope.getSpan());<a name="line.345"></a>
-<span class="sourceLineNo">346</span>  }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span>  private int finishSyncLowerThanTxid(long txid, boolean addSyncTrace) {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    int finished = 0;<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    for (Iterator&lt;SyncFuture&gt; iter = syncFutures.iterator(); iter.hasNext();) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      SyncFuture sync = iter.next();<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      if (sync.getTxid() &lt;= txid) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>        sync.done(txid, null);<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        iter.remove();<a name="line.354"></a>
-<span class="sourceLineNo">355</span>        finished++;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        if (addSyncTrace) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>          addTimeAnnotation(sync, "writer synced");<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        }<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      } else {<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        break;<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      }<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    return finished;<a name="line.363"></a>
+<span class="sourceLineNo">260</span>  private static boolean waitingRoll(int epochAndState) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    return (epochAndState &amp; 1) != 0;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>  }<a name="line.262"></a>
+<span class="sourceLineNo">263</span><a name="line.263"></a>
+<span class="sourceLineNo">264</span>  private static boolean writerBroken(int epochAndState) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    return ((epochAndState &gt;&gt;&gt; 1) &amp; 1) != 0;<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  private static int epoch(int epochAndState) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    return epochAndState &gt;&gt;&gt; 2;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  }<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>  // return whether we have successfully set readyForRolling to true.<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  private boolean trySetReadyForRolling() {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    // Check without holding lock first. Usually we will just return here.<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    // waitingRoll is volatile and unacedEntries is only accessed inside event loop so it is safe to<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    // check them outside the consumeLock.<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    if (!waitingRoll(epochAndState) || !unackedAppends.isEmpty()) {<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      return false;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    consumeLock.lock();<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    try {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>      // 1. a roll is requested<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      // 2. all out-going entries have been acked(we have confirmed above).<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      if (waitingRoll(epochAndState)) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        readyForRolling = true;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        readyForRollingCond.signalAll();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        return true;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      } else {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>        return false;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      }<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    } finally {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      consumeLock.unlock();<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    }<a name="line.293"></a>
+<span class="sourceLineNo">294</span>  }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>  private void syncFailed(long epochWhenSync, Throwable error) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    LOG.warn("sync failed", error);<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    boolean shouldRequestLogRoll = true;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    consumeLock.lock();<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    try {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      int currentEpochAndState = epochAndState;<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      if (epoch(currentEpochAndState) != epochWhenSync || writerBroken(currentEpochAndState)) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        // this is not the previous writer which means we have already rolled the writer.<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        // or this is still the current writer, but we have already marked it as broken and request<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        // a roll.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        return;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      this.epochAndState = currentEpochAndState | 0b10;<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      if (waitingRoll(currentEpochAndState)) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        readyForRolling = true;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>        readyForRollingCond.signalAll();<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        // this means we have already in the middle of a rollWriter so just tell the roller thread<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        // that you can continue without requesting an extra log roll.<a name="line.313"></a>
+<span class="sourceLineNo">314</span>        shouldRequestLogRoll = false;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      }<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    } finally {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      consumeLock.unlock();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    for (Iterator&lt;FSWALEntry&gt; iter = unackedAppends.descendingIterator(); iter.hasNext();) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      toWriteAppends.addFirst(iter.next());<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    highestUnsyncedTxid = highestSyncedTxid.get();<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    if (shouldRequestLogRoll) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      // request a roll.<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      requestLogRoll();<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  private void syncCompleted(AsyncWriter writer, long processedTxid, long startTimeNs) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    highestSyncedTxid.set(processedTxid);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    for (Iterator&lt;FSWALEntry&gt; iter = unackedAppends.iterator(); iter.hasNext();) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      if (iter.next().getTxid() &lt;= processedTxid) {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>        iter.remove();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      } else {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>        break;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>      }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    }<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    postSync(System.nanoTime() - startTimeNs, finishSync(true));<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    if (trySetReadyForRolling()) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      // we have just finished a roll, then do not need to check for log rolling, the writer will be<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      // closed soon.<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      return;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    }<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    if (writer.getLength() &lt; logrollsize || rollRequested) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      return;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    rollRequested = true;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    requestLogRoll();<a name="line.348"></a>
+<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span>  private void sync(AsyncWriter writer) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    fileLengthAtLastSync = writer.getLength();<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    long currentHighestProcessedAppendTxid = highestProcessedAppendTxid;<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    highestProcessedAppendTxidAtLastSync = currentHighestProcessedAppendTxid;<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    final long startTimeNs = System.nanoTime();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    final long epoch = epochAndState &gt;&gt;&gt; 2;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    writer.sync().whenCompleteAsync((result, error) -&gt; {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      if (error != null) {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        syncFailed(epoch, error);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      } else {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        syncCompleted(writer, currentHighestProcessedAppendTxid, startTimeNs);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }, consumeExecutor);<a name="line.363"></a>
 <span class="sourceLineNo">364</span>  }<a name="line.364"></a>
 <span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>  // try advancing the highestSyncedTxid as much as possible<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  private int finishSync(boolean addSyncTrace) {<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (unackedAppends.isEmpty()) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      // All outstanding appends have been acked.<a name="line.369"></a>
-<span class="sourceLineNo">370</span>      if (toWriteAppends.isEmpty()) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        // Also no appends that wait to be written out, then just finished all pending syncs.<a name="line.371"></a>
-<span class="sourceLineNo">372</span>        long maxSyncTxid = highestSyncedTxid.get();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        for (SyncFuture sync : syncFutures) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>          maxSyncTxid = Math.max(maxSyncTxid, sync.getTxid());<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          sync.done(maxSyncTxid, null);<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          if (addSyncTrace) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>            addTimeAnnotation(sync, "writer synced");<a name="line.377"></a>
-<span class="sourceLineNo">378</span>          }<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        highestSyncedTxid.set(maxSyncTxid);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        int finished = syncFutures.size();<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        syncFutures.clear();<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        return finished;<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      } else {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        // There is no append between highestProcessedAppendTxid and lowestUnprocessedAppendTxid, so<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        // if highestSyncedTxid &gt;= highestProcessedAppendTxid, then all syncs whose txid are between<a name="line.386"></a>
-<span class="sourceLineNo">387</span>        // highestProcessedAppendTxid and lowestUnprocessedAppendTxid can be finished.<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        long lowestUnprocessedAppendTxid = toWriteAppends.peek().getTxid();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        assert lowestUnprocessedAppendTxid &gt; highestProcessedAppendTxid;<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        long doneTxid = lowestUnprocessedAppendTxid - 1;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        highestSyncedTxid.set(doneTxid);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>        return finishSyncLowerThanTxid(doneTxid, addSyncTrace);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    } else {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      // There are still unacked appends. So let's move the highestSyncedTxid to the txid of the<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      // first unacked append minus 1.<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      long lowestUnackedAppendTxid = unackedAppends.peek().getTxid();<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      long doneTxid = Math.max(lowestUnackedAppendTxid - 1, highestSyncedTxid.get());<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      highestSyncedTxid.set(doneTxid);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      return finishSyncLowerThanTxid(doneTxid, addSyncTrace);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  }<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  private void appendAndSync() {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    final AsyncWriter writer = this.writer;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    // maybe a sync request is not queued when we issue a sync, so check here to see if we could<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    // finish some.<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    finishSync(false);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    long newHighestProcessedAppendTxid = -1L;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    for (Iterator&lt;FSWALEntry&gt; iter = toWriteAppends.iterator(); iter.hasNext();) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      FSWALEntry entry = iter.next();<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      boolean appended;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      Span span = entry.detachSpan();<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      // the span maybe null if this is a retry after rolling.<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      if (span != null) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        //TODO handle htrace API change, see HBASE-18895<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        //TraceScope scope = Trace.continueSpan(span);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        try {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          appended = append(writer, entry);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        } catch (IOException e) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          throw new AssertionError("should not happen", e);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        } finally {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          //TODO handle htrace API change, see HBASE-18895<a name="line.423"></a>
-<span class="sourceLineNo">424</span>          //assert scope == NullScope.INSTANCE || !scope.isDetached();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          //scope.close(); // append scope is complete<a name="line.425"></a>
-<span class="sourceLineNo">426</span>        }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      } else {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        try {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>          appended = append(writer, entry);<a name="line.429"></a>
-<span class="sourceLineNo">430</span>        } catch (IOException e) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          throw new AssertionError("should not happen", e);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      newHighestProcessedAppendTxid = entry.getTxid();<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      iter.remove();<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      if (appended) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        unackedAppends.addLast(entry);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>        if (writer.getLength() - fileLengthAtLastSync &gt;= batchSize) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          break;<a name="line.439"></a>
-<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
+<span class="sourceLineNo">366</span>  private void addTimeAnnotation(SyncFuture future, String annotation) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    TraceUtil.addTimelineAnnotation(annotation);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    // TODO handle htrace API change, see HBASE-18895<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    // future.setSpan(scope.getSpan());<a name="line.369"></a>
+<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span>  private int finishSyncLowerThanTxid(long txid, boolean addSyncTrace) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    int finished = 0;<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    for (Iterator&lt;SyncFuture&gt; iter = syncFutures.iterator(); iter.hasNext();) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      SyncFuture sync = iter.next();<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      if (sync.getTxid() &lt;= txid) {<a name="line.376"></a>
+<span class="sourceLineNo">377</span>        sync.done(txid, null);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        iter.remove();<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        finished++;<a name="line.379"></a>
+<span class="sourceLineNo">380</span>        if (addSyncTrace) {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>          addTimeAnnotation(sync, "writer synced");<a name="line.381"></a>
+<span class="sourceLineNo">382</span>        }<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      } else {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>        break;<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      }<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    return finished;<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span>  // try advancing the highestSyncedTxid as much as possible<a name="line.390"></a>
+<span class="sourceLineNo">391</span>  private int finishSync(boolean addSyncTrace) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    if (unackedAppends.isEmpty()) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      // All outstanding appends have been acked.<a name="line.393"></a>
+<span class="sourceLineNo">394</span>      if (toWriteAppends.isEmpty()) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>        // Also no appends that wait to be written out, then just finished all pending syncs.<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        long maxSyncTxid = highestSyncedTxid.get();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        for (SyncFuture sync : syncFutures) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span>          maxSyncTxid = Math.max(maxSyncTxid, sync.getTxid());<a name="line.398"></a>
+<span class="sourceLineNo">399</span>          sync.done(maxSyncTxid, null);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>          if (addSyncTrace) {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>            addTimeAnnotation(sync, "writer synced");<a name="line.401"></a>
+<span class="sourceLineNo">402</span>          }<a name="line.402"></a>
+<span class="sourceLineNo">403</span>        }<a name="line.403"></a>
+<span class="sourceLineNo">404</span>        highestSyncedTxid.set(maxSyncTxid);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>        int finished = syncFutures.size();<a name="line.405"></a>
+<span class="sourceLineNo">406</span>        syncFutures.clear();<a name="line.406"></a>
+<span class="sourceLineNo">407</span>        return finished;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      } else {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>        // There is no append between highestProcessedAppendTxid and lowestUnprocessedAppendTxid, so<a name="line.409"></a>
+<span class="sourceLineNo">410</span>        // if highestSyncedTxid &gt;= highestProcessedAppendTxid, then all syncs whose txid are between<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        // highestProcessedAppendTxid and lowestUnprocessedAppendTxid can be finished.<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        long lowestUnprocessedAppendTxid = toWriteAppends.peek().getTxid();<a name="line.412"></a>
+<span class="sourceLineNo">413</span>        assert lowestUnprocessedAppendTxid &gt; highestProcessedAppendTxid;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        long doneTxid = lowestUnprocessedAppendTxid - 1;<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        highestSyncedTxid.set(doneTxid);<a name="line.415"></a>
+<span class="sourceLineNo">416</span>        return finishSyncLowerThanTxid(doneTxid, addSyncTrace);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      }<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    } else {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      // There are still unacked appends. So let's move the highestSyncedTxid to the txid of the<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      // first unacked append minus 1.<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      long lowestUnackedAppendTxid = unackedAppends.peek().getTxid();<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      long doneTxid = Math.max(lowestUnackedAppendTxid - 1, highestSyncedTxid.get());<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      highestSyncedTxid.set(doneTxid);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      return finishSyncLowerThanTxid(doneTxid, addSyncTrace);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>  }<a name="line.426"></a>
+<span class="sourceLineNo">427</span><a name="line.427"></a>
+<span class="sourceLineNo">428</span>  private void appendAndSync() {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    final AsyncWriter writer = this.writer;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    // maybe a sync request is not queued when we issue a sync, so check here to see if we could<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    // finish some.<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    finishSync(false);<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    long newHighestProcessedAppendTxid = -1L;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    for (Iterator&lt;FSWALEntry&gt; iter = toWriteAppends.iterator(); iter.hasNext();) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      FSWALEntry entry = iter.next();<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      boolean appended;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      try {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        appended = append(writer, entry);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>      } catch (IOException e) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        throw new AssertionError("should not happen", e);<a name="line.440"></a>
 <span class="sourceLineNo">441</span>      }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    // if we have a newer transaction id, update it.<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    // otherwise, use the previous transaction id.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    if (newHighestProcessedAppendTxid &gt; 0) {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      highestProcessedAppendTxid = newHighestProcessedAppendTxid;<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    } else {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      newHighestProcessedAppendTxid = highestProcessedAppendTxid;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    if (writer.getLength() - fileLengthAtLastSync &gt;= batchSize) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      // sync because buffer size limit.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      sync(writer);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      return;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    if (writer.getLength() == fileLengthAtLastSync) {<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      // we haven't written anything out, just advance the highestSyncedSequence since we may only<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      // stamped some region sequence id.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      if (unackedAppends.isEmpty()) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        highestSyncedTxid.set(highestProcessedAppendTxid);<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        finishSync(false);<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        trySetReadyForRolling();<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      }<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      return;<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    // reach here means that we have some unsynced data but haven't reached the batch size yet<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    // but we will not issue a sync directly here even if there are sync requests because we may<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    // have some new data in the ringbuffer, so let's just return here and delay the decision of<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // whether to issue a sync in the caller method.<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line

<TRUNCATED>

[06/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html
index 33ce961..6e909b1 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html
@@ -55,755 +55,752 @@
 <span class="sourceLineNo">047</span><a name="line.47"></a>
 <span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.48"></a>
 <span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.coprocessor.CoreCoprocessor;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.coprocessor.HasRegionServerServices;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.regionserver.StorefileRefresherChore;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.junit.AfterClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.junit.Assert;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.junit.BeforeClass;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.junit.Test;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.junit.experimental.categories.Category;<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>@Category({MediumTests.class, ClientTests.class})<a name="line.71"></a>
-<span class="sourceLineNo">072</span>public class TestReplicaWithCluster {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final Log LOG = LogFactory.getLog(TestReplicaWithCluster.class);<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final int NB_SERVERS = 3;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final byte[] row = TestReplicaWithCluster.class.getName().getBytes();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final HBaseTestingUtility HTU = new HBaseTestingUtility();<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  // second minicluster used in testing of replication<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static HBaseTestingUtility HTU2;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private static final byte[] f = HConstants.CATALOG_FAMILY;<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private final static int REFRESH_PERIOD = 1000;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private final static int META_SCAN_TIMEOUT_IN_MILLISEC = 200;<a name="line.84"></a>
-<span class="sourceLineNo">085</span><a name="line.85"></a>
-<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * This copro is used to synchronize the tests.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public static class SlowMeCopro implements RegionCoprocessor, RegionObserver {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    static final AtomicLong sleepTime = new AtomicLong(0);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    static final AtomicReference&lt;CountDownLatch&gt; cdl = new AtomicReference&lt;&gt;(new CountDownLatch(0));<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>    public SlowMeCopro() {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>    @Override<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return Optional.of(this);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>    @Override<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.102"></a>
-<span class="sourceLineNo">103</span>                         final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() == 0) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        CountDownLatch latch = cdl.get();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        try {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>          if (sleepTime.get() &gt; 0) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>            LOG.info("Sleeping for " + sleepTime.get() + " ms");<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            Thread.sleep(sleepTime.get());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          } else if (latch.getCount() &gt; 0) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>            LOG.info("Waiting for the counterCountDownLatch");<a name="line.112"></a>
-<span class="sourceLineNo">113</span>            latch.await(2, TimeUnit.MINUTES); // To help the tests to finish.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>            if (latch.getCount() &gt; 0) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>              throw new RuntimeException("Can't wait more");<a name="line.115"></a>
-<span class="sourceLineNo">116</span>            }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>          }<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        } catch (InterruptedException e1) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          LOG.error(e1);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      } else {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        LOG.info("We're not the primary replicas.");<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  /**<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * This copro is used to simulate region server down exception for Get and Scan<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  @CoreCoprocessor<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  public static class RegionServerStoppedCopro implements RegionCoprocessor, RegionObserver {<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>    public RegionServerStoppedCopro() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return Optional.of(this);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>      // Fail for the primary replica and replica 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            + " not running");<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      } else {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        LOG.info("We're replica region " + replicaId);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        final Scan scan) throws IOException {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      // Fail for the primary replica and replica 1<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.164"></a>
-<span class="sourceLineNo">165</span>            + " not running");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      } else {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        LOG.info("We're replica region " + replicaId);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      }<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  /**<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   * This copro is used to slow down the primary meta region scan a bit<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static class RegionServerHostingPrimayMetaRegionSlowOrStopCopro<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      implements RegionCoprocessor, RegionObserver {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    static boolean slowDownPrimaryMetaScan = false;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    static boolean throwException = false;<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    @Override<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return Optional.of(this);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>    @Override<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>      // Fail for the primary replica, but not for meta<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      if (throwException) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        if (!e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>          LOG.info("Get, throw Region Server Stopped Exceptoin for region " + e.getEnvironment()<a name="line.194"></a>
-<span class="sourceLineNo">195</span>              .getRegion().getRegionInfo());<a name="line.195"></a>
-<span class="sourceLineNo">196</span>          throw new RegionServerStoppedException("Server " +<a name="line.196"></a>
-<span class="sourceLineNo">197</span>            ((HasRegionServerServices)e.getEnvironment()).getRegionServerServices().getServerName()<a name="line.197"></a>
-<span class="sourceLineNo">198</span>                  + " not running");<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        }<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      } else {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        LOG.info("Get, We're replica region " + replicaId);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      }<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>    @Override<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        final Scan scan) throws IOException {<a name="line.207"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.regionserver.StorefileRefresherChore;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.junit.AfterClass;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.junit.Assert;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.junit.BeforeClass;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.Test;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.experimental.categories.Category;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>@Category({MediumTests.class, ClientTests.class})<a name="line.70"></a>
+<span class="sourceLineNo">071</span>public class TestReplicaWithCluster {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private static final Log LOG = LogFactory.getLog(TestReplicaWithCluster.class);<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private static final int NB_SERVERS = 3;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final byte[] row = TestReplicaWithCluster.class.getName().getBytes();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private static final HBaseTestingUtility HTU = new HBaseTestingUtility();<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  // second minicluster used in testing of replication<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static HBaseTestingUtility HTU2;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final byte[] f = HConstants.CATALOG_FAMILY;<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private final static int REFRESH_PERIOD = 1000;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private final static int META_SCAN_TIMEOUT_IN_MILLISEC = 200;<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * This copro is used to synchronize the tests.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public static class SlowMeCopro implements RegionCoprocessor, RegionObserver {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    static final AtomicLong sleepTime = new AtomicLong(0);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    static final AtomicReference&lt;CountDownLatch&gt; cdl = new AtomicReference&lt;&gt;(new CountDownLatch(0));<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    public SlowMeCopro() {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>    @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      return Optional.of(this);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>    @Override<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                         final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() == 0) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        CountDownLatch latch = cdl.get();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        try {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>          if (sleepTime.get() &gt; 0) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>            LOG.info("Sleeping for " + sleepTime.get() + " ms");<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            Thread.sleep(sleepTime.get());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          } else if (latch.getCount() &gt; 0) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>            LOG.info("Waiting for the counterCountDownLatch");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>            latch.await(2, TimeUnit.MINUTES); // To help the tests to finish.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>            if (latch.getCount() &gt; 0) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>              throw new RuntimeException("Can't wait more");<a name="line.114"></a>
+<span class="sourceLineNo">115</span>            }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>          }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        } catch (InterruptedException e1) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>          LOG.error(e1);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      } else {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        LOG.info("We're not the primary replicas.");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /**<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * This copro is used to simulate region server down exception for Get and Scan<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  @CoreCoprocessor<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  public static class RegionServerStoppedCopro implements RegionCoprocessor, RegionObserver {<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>    public RegionServerStoppedCopro() {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    @Override<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      return Optional.of(this);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>    @Override<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>      // Fail for the primary replica and replica 1<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.149"></a>
+<span class="sourceLineNo">150</span>            + " not running");<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      } else {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        LOG.info("We're replica region " + replicaId);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        final Scan scan) throws IOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      // Fail for the primary replica and replica 1<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            + " not running");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      } else {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        LOG.info("We're replica region " + replicaId);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * This copro is used to slow down the primary meta region scan a bit<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public static class RegionServerHostingPrimayMetaRegionSlowOrStopCopro<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      implements RegionCoprocessor, RegionObserver {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    static boolean slowDownPrimaryMetaScan = false;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    static boolean throwException = false;<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      return Optional.of(this);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>    @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>      // Fail for the primary replica, but not for meta<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      if (throwException) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        if (!e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          LOG.info("Get, throw Region Server Stopped Exceptoin for region " + e.getEnvironment()<a name="line.193"></a>
+<span class="sourceLineNo">194</span>              .getRegion().getRegionInfo());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                  + " not running");<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      } else {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        LOG.info("Get, We're replica region " + replicaId);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        final Scan scan) throws IOException {<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.207"></a>
 <span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>      // Slow down with the primary meta region scan<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      if (e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        if (slowDownPrimaryMetaScan) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          LOG.info("Scan with primary meta region, slow down a bit");<a name="line.214"></a>
-<span class="sourceLineNo">215</span>          try {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>            Thread.sleep(META_SCAN_TIMEOUT_IN_MILLISEC - 50);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>          } catch (InterruptedException ie) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>            // Ingore<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>        // Fail for the primary replica<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        if (throwException) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>          LOG.info("Scan, throw Region Server Stopped Exceptoin for replica " + e.getEnvironment()<a name="line.224"></a>
-<span class="sourceLineNo">225</span>              .getRegion().getRegionInfo());<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>          throw new RegionServerStoppedException("Server " +<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            ((HasRegionServerServices)e.getEnvironment()).getRegionServerServices().getServerName()<a name="line.228"></a>
-<span class="sourceLineNo">229</span>               + " not running");<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        } else {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>          LOG.info("Scan, We're replica region " + replicaId);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      } else {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        LOG.info("Scan, We're replica region " + replicaId);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    }<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  }<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  @BeforeClass<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  public static void beforeClass() throws Exception {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    // enable store file refreshing<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    HTU.getConfiguration().setInt(StorefileRefresherChore.REGIONSERVER_STOREFILE_REFRESH_PERIOD,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        REFRESH_PERIOD);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>    HTU.getConfiguration().setFloat("hbase.regionserver.logroll.multiplier", 0.0001f);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    HTU.getConfiguration().setInt("replication.source.size.capacity", 10240);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    HTU.getConfiguration().setLong("replication.source.sleepforretries", 100);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    HTU.getConfiguration().setInt("hbase.regionserver.maxlogs", 2);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    HTU.getConfiguration().setLong("hbase.master.logcleaner.ttl", 10);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry", 1);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // Wait for primary call longer so make sure that it will get exception from the primary call<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.get", 1000000);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.scan", 1000000);<a name="line.255"></a>
+<span class="sourceLineNo">209</span>      // Slow down with the primary meta region scan<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      if (e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        if (slowDownPrimaryMetaScan) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>          LOG.info("Scan with primary meta region, slow down a bit");<a name="line.212"></a>
+<span class="sourceLineNo">213</span>          try {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>            Thread.sleep(META_SCAN_TIMEOUT_IN_MILLISEC - 50);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>          } catch (InterruptedException ie) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>            // Ingore<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>        // Fail for the primary replica<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        if (throwException) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          LOG.info("Scan, throw Region Server Stopped Exceptoin for replica " + e.getEnvironment()<a name="line.222"></a>
+<span class="sourceLineNo">223</span>              .getRegion().getRegionInfo());<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>          throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.225"></a>
+<span class="sourceLineNo">226</span>               + " not running");<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        } else {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          LOG.info("Scan, We're replica region " + replicaId);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      } else {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        LOG.info("Scan, We're replica region " + replicaId);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>  @BeforeClass<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  public static void beforeClass() throws Exception {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    // enable store file refreshing<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    HTU.getConfiguration().setInt(StorefileRefresherChore.REGIONSERVER_STOREFILE_REFRESH_PERIOD,<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        REFRESH_PERIOD);<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>    HTU.getConfiguration().setFloat("hbase.regionserver.logroll.multiplier", 0.0001f);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    HTU.getConfiguration().setInt("replication.source.size.capacity", 10240);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    HTU.getConfiguration().setLong("replication.source.sleepforretries", 100);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    HTU.getConfiguration().setInt("hbase.regionserver.maxlogs", 2);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    HTU.getConfiguration().setLong("hbase.master.logcleaner.ttl", 10);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry", 1);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    // Wait for primary call longer so make sure that it will get exception from the primary call<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.get", 1000000);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.scan", 1000000);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    // Retry less so it can fail faster<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    HTU.getConfiguration().setInt("hbase.client.retries.number", 1);<a name="line.255"></a>
 <span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    // Retry less so it can fail faster<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    HTU.getConfiguration().setInt("hbase.client.retries.number", 1);<a name="line.258"></a>
+<span class="sourceLineNo">257</span>    // Enable meta replica at server side<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    HTU.getConfiguration().setInt("hbase.meta.replica.count", 2);<a name="line.258"></a>
 <span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    // Enable meta replica at server side<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    HTU.getConfiguration().setInt("hbase.meta.replica.count", 2);<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    // Make sure master does not host system tables.<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    HTU.getConfiguration().set("hbase.balancer.tablesOnMaster", "none");<a name="line.261"></a>
 <span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    // Make sure master does not host system tables.<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    HTU.getConfiguration().set("hbase.balancer.tablesOnMaster", "none");<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    // Set system coprocessor so it can be applied to meta regions<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    HTU.getConfiguration().set("hbase.coprocessor.region.classes",<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        RegionServerHostingPrimayMetaRegionSlowOrStopCopro.class.getName());<a name="line.268"></a>
+<span class="sourceLineNo">263</span>    // Set system coprocessor so it can be applied to meta regions<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    HTU.getConfiguration().set("hbase.coprocessor.region.classes",<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        RegionServerHostingPrimayMetaRegionSlowOrStopCopro.class.getName());<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    HTU.getConfiguration().setInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        META_SCAN_TIMEOUT_IN_MILLISEC * 1000);<a name="line.268"></a>
 <span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>    HTU.getConfiguration().setInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        META_SCAN_TIMEOUT_IN_MILLISEC * 1000);<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    HTU.startMiniCluster(NB_SERVERS);<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    HTU.getHBaseCluster().startMaster();<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  }<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>  @AfterClass<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public static void afterClass() throws Exception {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    if (HTU2 != null)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      HTU2.shutdownMiniCluster();<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    HTU.shutdownMiniCluster();<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  @Test (timeout=30000)<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public void testCreateDeleteTable() throws IOException {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    // Create table then get the single region for our new table.<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testCreateDeleteTable");<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    Put p = new Put(row);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    p.addColumn(f, row, row);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    table.put(p);<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>    Get g = new Get(row);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    Result r = table.get(g);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Assert.assertFalse(r.isStale());<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    try {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      // But if we ask for stale we will get it<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      g = new Get(row);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      r = table.get(g);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      Assert.assertTrue(r.isStale());<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      SlowMeCopro.cdl.get().countDown();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    } finally {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      SlowMeCopro.cdl.get().countDown();<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      SlowMeCopro.sleepTime.set(0);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    }<a name="line.311"></a>
-<span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    HTU.deleteTable(hdt.getTableName());<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>  @Test (timeout=120000)<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  public void testChangeTable() throws Exception {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    TableDescriptor td = TableDescriptorBuilder.newBuilder(TableName.valueOf("testChangeTable"))<a name="line.319"></a>
-<span class="sourceLineNo">320</span>            .setRegionReplication(NB_SERVERS)<a name="line.320"></a>
-<span class="sourceLineNo">321</span>            .addCoprocessor(SlowMeCopro.class.getName())<a name="line.321"></a>
-<span class="sourceLineNo">322</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(f))<a name="line.322"></a>
-<span class="sourceLineNo">323</span>            .build();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    HTU.getAdmin().createTable(td);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    Table table = HTU.getConnection().getTable(td.getTableName());<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    // basic test: it should work.<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    Put p = new Put(row);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    p.addColumn(f, row, row);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    table.put(p);<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>    Get g = new Get(row);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    Result r = table.get(g);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    Assert.assertFalse(r.isStale());<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>    // Add a CF, it should work.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    TableDescriptor bHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    td = TableDescriptorBuilder.newBuilder(td)<a name="line.337"></a>
-<span class="sourceLineNo">338</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(row))<a name="line.338"></a>
-<span class="sourceLineNo">339</span>            .build();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    HTU.getAdmin().disableTable(td.getTableName());<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    HTU.getAdmin().modifyTable(td);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    HTU.getAdmin().enableTable(td.getTableName());<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    TableDescriptor nHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>    p = new Put(row);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    p.addColumn(row, row, row);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    table.put(p);<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    g = new Get(row);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    r = table.get(g);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    Assert.assertFalse(r.isStale());<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    try {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      g = new Get(row);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      r = table.get(g);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      Assert.assertTrue(r.isStale());<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    } finally {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      SlowMeCopro.cdl.get().countDown();<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      SlowMeCopro.sleepTime.set(0);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Admin admin = HTU.getAdmin();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    nHdt =admin.getDescriptor(td.getTableName());<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>    admin.disableTable(td.getTableName());<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    admin.deleteTable(td.getTableName());<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    admin.close();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  @SuppressWarnings("deprecation")<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  @Test (timeout=300000)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  public void testReplicaAndReplication() throws Exception {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testReplicaAndReplication");<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>    HColumnDescriptor fam = new HColumnDescriptor(row);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    hdt.addFamily(fam);<a name="line.384"></a>
+<span class="sourceLineNo">270</span>    HTU.startMiniCluster(NB_SERVERS);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    HTU.getHBaseCluster().startMaster();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>  @AfterClass<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  public static void afterClass() throws Exception {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    if (HTU2 != null)<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      HTU2.shutdownMiniCluster();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    HTU.shutdownMiniCluster();<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  @Test (timeout=30000)<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public void testCreateDeleteTable() throws IOException {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    // Create table then get the single region for our new table.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testCreateDeleteTable");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    Put p = new Put(row);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    p.addColumn(f, row, row);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    table.put(p);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    Get g = new Get(row);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    Result r = table.get(g);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    Assert.assertFalse(r.isStale());<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>    try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      // But if we ask for stale we will get it<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      g = new Get(row);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      r = table.get(g);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      Assert.assertTrue(r.isStale());<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      SlowMeCopro.cdl.get().countDown();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    } finally {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      SlowMeCopro.cdl.get().countDown();<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      SlowMeCopro.sleepTime.set(0);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    HTU.deleteTable(hdt.getTableName());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>  }<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>  @Test (timeout=120000)<a name="line.314"></a>
+<span class="sourceLineNo">315</span>  public void testChangeTable() throws Exception {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    TableDescriptor td = TableDescriptorBuilder.newBuilder(TableName.valueOf("testChangeTable"))<a name="line.316"></a>
+<span class="sourceLineNo">317</span>            .setRegionReplication(NB_SERVERS)<a name="line.317"></a>
+<span class="sourceLineNo">318</span>            .addCoprocessor(SlowMeCopro.class.getName())<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(f))<a name="line.319"></a>
+<span class="sourceLineNo">320</span>            .build();<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    HTU.getAdmin().createTable(td);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    Table table = HTU.getConnection().getTable(td.getTableName());<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    // basic test: it should work.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    Put p = new Put(row);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    p.addColumn(f, row, row);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    table.put(p);<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>    Get g = new Get(row);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    Result r = table.get(g);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    Assert.assertFalse(r.isStale());<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>    // Add a CF, it should work.<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    TableDescriptor bHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    td = TableDescriptorBuilder.newBuilder(td)<a name="line.334"></a>
+<span class="sourceLineNo">335</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(row))<a name="line.335"></a>
+<span class="sourceLineNo">336</span>            .build();<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    HTU.getAdmin().disableTable(td.getTableName());<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    HTU.getAdmin().modifyTable(td);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    HTU.getAdmin().enableTable(td.getTableName());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    TableDescriptor nHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>    p = new Put(row);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    p.addColumn(row, row, row);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    table.put(p);<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>    g = new Get(row);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    r = table.get(g);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    Assert.assertFalse(r.isStale());<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      g = new Get(row);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      r = table.get(g);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      Assert.assertTrue(r.isStale());<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    } finally {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      SlowMeCopro.cdl.get().countDown();<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      SlowMeCopro.sleepTime.set(0);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    Admin admin = HTU.getAdmin();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    nHdt =admin.getDescriptor(td.getTableName());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span>    admin.disableTable(td.getTableName());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    admin.deleteTable(td.getTableName());<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    admin.close();<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  @SuppressWarnings("deprecation")<a name="line.373"></a>
+<span class="sourceLineNo">374</span>  @Test (timeout=300000)<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  public void testReplicaAndReplication() throws Exception {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testReplicaAndReplication");<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>    HColumnDescriptor fam = new HColumnDescriptor(row);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    hdt.addFamily(fam);<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    HTU.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.384"></a>
 <span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    HTU.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>    Configuration conf2 = HBaseConfiguration.create(HTU.getConfiguration());<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    conf2.set(HConstants.HBASE_CLIENT_INSTANCE_ID, String.valueOf(-1));<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    MiniZooKeeperCluster miniZK = HTU.getZkCluster();<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>    HTU2 = new HBaseTestingUtility(conf2);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    HTU2.setZkCluster(miniZK);<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    HTU2.startMiniCluster(NB_SERVERS);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    LOG.info("Setup second Zk");<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    HTU2.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());<a name="line.400"></a>
-<span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    rpc.setClusterKey(HTU2.getClusterKey());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    admin.addPeer("2", rpc, null);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    admin.close();<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    Put p = new Put(row);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    p.addColumn(row, row, row);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    final Table table = HTU.getConnection().getTable(hdt.getTableName());<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    table.put(p);<a name="line.410"></a>
+<span class="sourceLineNo">386</span>    Configuration conf2 = HBaseConfiguration.create(HTU.getConfiguration());<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    conf2.set(HConstants.HBASE_CLIENT_INSTANCE_ID, String.valueOf(-1));<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    MiniZooKeeperCluster miniZK = HTU.getZkCluster();<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>    HTU2 = new HBaseTestingUtility(conf2);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    HTU2.setZkCluster(miniZK);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    HTU2.startMiniCluster(NB_SERVERS);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    LOG.info("Setup second Zk");<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    HTU2.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>    ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    rpc.setClusterKey(HTU2.getClusterKey());<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    admin.addPeer("2", rpc, null);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    admin.close();<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>    Put p = new Put(row);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    p.addColumn(row, row, row);<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    final Table table = HTU.getConnection().getTable(hdt.getTableName());<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    table.put(p);<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>    HTU.getAdmin().flush(table.getName());<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    LOG.info("Put &amp; flush done on the first cluster. Now doing a get on the same cluster.");<a name="line.410"></a>
 <span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    HTU.getAdmin().flush(table.getName());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    LOG.info("Put &amp; flush done on the first cluster. Now doing a get on the same cluster.");<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      @Override public boolean evaluate() throws Exception {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        try {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          Get g = new Get(row);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          Result r = table.get(g);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          Assert.assertTrue(r.isStale());<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          return !r.isEmpty();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        } finally {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          SlowMeCopro.cdl.get().countDown();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          SlowMeCopro.sleepTime.set(0);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    });<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    table.close();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    LOG.info("stale get on the first cluster done. Now for the second.");<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>    final Table table2 = HTU.getConnection().getTable(hdt.getTableName());<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      @Override public boolean evaluate() throws Exception {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        try {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          Get g = new Get(row);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          Result r = table2.get(g);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          Assert.assertTrue(r.isStale());<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          return !r.isEmpty();<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        } finally {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          SlowMeCopro.cdl.get().countDown();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          SlowMeCopro.sleepTime.set(0);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>        }<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    });<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    table2.close();<a name="line.449"></a>
+<span class="sourceLineNo">412</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      @Override public boolean evaluate() throws Exception {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        try {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          Get g = new Get(row);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>          Result r = table.get(g);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          Assert.assertTrue(r.isStale());<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          return !r.isEmpty();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        } finally {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>          SlowMeCopro.cdl.get().countDown();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          SlowMeCopro.sleepTime.set(0);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    });<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    table.close();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    LOG.info("stale get on the first cluster done. Now for the second.");<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>    final Table table2 = HTU.getConnection().getTable(hdt.getTableName());<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      @Override public boolean evaluate() throws Exception {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        try {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.434"></a>
+<span class="sourceLineNo">435</span>          Get g = new Get(row);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>          Result r = table2.get(g);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>          Assert.assertTrue(r.isStale());<a name="line.438"></a>
+<span class="sourceLineNo">439</span>          return !r.isEmpty();<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        } finally {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>          SlowMeCopro.cdl.get().countDown();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>          SlowMeCopro.sleepTime.set(0);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        }<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    });<a name="line.445"></a>
+<span class="sourceLineNo">446</span>    table2.close();<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    HTU.deleteTable(hdt.getTableName());<a name="line.449"></a>
 <span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    HTU.deleteTable(hdt.getTableName());<a name="line.452"></a>
+<span class="sourceLineNo">451</span>    HTU2.getAdmin().disableTable(hdt.getTableName());<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    HTU2.deleteTable(hdt.getTableName());<a name="line.452"></a>
 <span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>    HTU2.getAdmin().disableTable(hdt.getTableName());<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    HTU2.deleteTable(hdt.getTableName());<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    // We shutdown HTU2 minicluster later, in afterClass(), as shutting down<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    // the minicluster has negative impact of deleting all HConnections in JVM.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  @Test (timeout=30000)<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  public void testBulkLoad() throws IOException {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    // Create table then get the single region for our new table.<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    LOG.debug("Creating test table");<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testBulkLoad");<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.468"></a>
-<span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // create hfiles to load.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    LOG.debug("Creating test data");<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    Path dir = HTU.getDataTestDirOnTestFS("testBulkLoad");<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    final int numRows = 10;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    final byte[] qual = Bytes.toBytes("qual");<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    final byte[] val  = Bytes.toBytes("val");<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    final List&lt;Pair&lt;byte[], String&gt;&gt; famPaths = new ArrayList&lt;&gt;();<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    for (HColumnDescriptor col : hdt.getColumnFamilies()) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      Path hfile = new Path(dir, col.getNameAsString());<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      TestHRegionServerBulkLoad.createHFile(HTU.getTestFileSystem(), hfile, col.getName(),<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        qual, val, numRows);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      famPaths.add(new Pair&lt;&gt;(col.getName(), hfile.toString()));<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    // bulk load HFiles<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    LOG.debug("Loading test data");<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    final ClusterConnection conn = (ClusterConnection) HTU.getAdmin().getConnection();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    table = conn.getTable(hdt.getTableName());<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    final String bulkToken =<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        new SecureBulkLoadClient(HTU.getConfiguration(), table).prepareBulkLoad(conn);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    ClientServiceCallable&lt;Void&gt; callable = new ClientServiceCallable&lt;Void&gt;(conn,<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        hdt.getTableName(), TestHRegionServerBulkLoad.rowkey(0),<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        new RpcControllerFactory(HTU.getConfiguration()).newController(), HConstants.PRIORITY_UNSET) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      @Override<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      protected Void rpcCall() throws Exception {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>        LOG.debug("Going to connect to server " + getLocation() + " for row "<a name="line.495"></a>
-<span class="sourceLineNo">496</span>            + Bytes.toStringBinary(getRow()));<a name="line.496"></a>
-<span class="sourceLineNo">497</span>        SecureBulkLoadClient secureClient = null;<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        byte[] regionName = getLocation().getRegionInfo().getRegionName();<a name="line.498"></a>
-<span class="sourceLineNo">499</span>        try (Table table = conn.getTable(getTableName())) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>          secureClient = new SecureBulkLoadClient(HTU.getConfiguration(), table);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          secureClient.secureBulkLoadHFiles(getStub(), famPaths, regionName,<a name="line.501"></a>
-<span class="sourceLineNo">502</span>              true, null, bulkToken);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        }<a name="line.503"></a>
-<span class="sourceLineNo">504</span>        return null;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    };<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    RpcRetryingCallerFactory factory = new RpcRetryingCallerFactory(HTU.getConfiguration());<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    RpcRetryingCaller&lt;Void&gt; caller = factory.newCaller();<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    caller.callWithRetries(callable, 10000);<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // verify we can read them from the primary<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    LOG.debug("Verifying data load");<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    for (int i = 0; i &lt; numRows; i++) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      byte[] row = TestHRegionServerBulkLoad.rowkey(i);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      Get g = new Get(row);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      Result r = table.get(g);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      Assert.assertFalse(r.isStale());<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    // verify we can read them from the replica<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    LOG.debug("Verifying replica queries");<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    try {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      for (int i = 0; i &lt; numRows; i++) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        byte[] row = TestHRegionServerBulkLoad.rowkey(i);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>        Get g = new Get(row);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        g.setConsistency(Consistency.TIMELINE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        Result r = table.get(g);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        Assert.assertTrue(r.isStale());<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      SlowMeCopro.cdl.get().countDown();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    } finally {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      SlowMeCopro.cdl.get().countDown();<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      SlowMeCopro.sleepTime.set(0);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    HTU.deleteTable(hdt.getTableName());<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  }<a name="line.539"></a>
-<span class="sourceLineNo">540</span><a name="line.540"></

<TRUNCATED>

[41/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index 3473744..f7a89ac 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -333,9 +333,9 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index 20eb5a8..d075171 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -208,8 +208,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/net/class-use/Address.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/net/class-use/Address.html b/devapidocs/org/apache/hadoop/hbase/net/class-use/Address.html
index 716df3e..228056a 100644
--- a/devapidocs/org/apache/hadoop/hbase/net/class-use/Address.html
+++ b/devapidocs/org/apache/hadoop/hbase/net/class-use/Address.html
@@ -186,13 +186,20 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Called after servers are removed from rsgroup</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>
 <div class="block">Called before servers are moved to target region server group</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
@@ -201,6 +208,13 @@
 <div class="block">Called before servers are moved to target region server group</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Called before servers are removed from rsgroup</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>
@@ -228,15 +242,23 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MasterCoprocessorHost.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRemoveServers-java.util.Set-">postRemoveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterCoprocessorHost.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMoveServers-java.util.Set-java.lang.String-">preMoveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterCoprocessorHost.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMoveServersAndTables-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MasterCoprocessorHost.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRemoveServers-java.util.Set-">preRemoveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>
@@ -398,24 +420,30 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkOnlineServersOnly-java.util.Set-">checkOnlineServersOnly</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkForDeadOrOnlineServers-java.util.Set-">checkForDeadOrOnlineServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Check if the set of servers are belong to dead servers list or online servers list.</div>
+</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkOnlineServersOnly-java.util.Set-">checkOnlineServersOnly</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkServersAndTables-java.util.Set-java.util.Set-java.lang.String-">checkServersAndTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroupName)</code>
 <div class="block">Check servers and tables.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupBasedLoadBalancer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#filterServers-java.util.Collection-java.util.Collection-">filterServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;onlineServers)</code>
 <div class="block">Filter servers based on the online servers.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#moveRegionsFromServers-java.util.Set-java.util.Set-java.lang.String-">moveRegionsFromServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
@@ -424,7 +452,7 @@
  but should not be located there.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#moveRegionsToServers-java.util.Set-java.util.Set-java.lang.String-">moveRegionsToServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
@@ -433,30 +461,30 @@
  but currently they are located on other servers.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminClient.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#moveServers-java.util.Set-java.lang.String-">moveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#moveServers-java.util.Set-java.lang.String-">moveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>
 <div class="block">Move given set of servers to the specified target RegionServer group.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#moveServers-java.util.Set-java.lang.String-">moveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroupName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupInfoManagerImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#moveServers-java.util.Set-java.lang.String-java.lang.String-">moveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcGroup,
            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dstGroup)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupInfoManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#moveServers-java.util.Set-java.lang.String-java.lang.String-">moveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcGroup,
@@ -464,13 +492,13 @@
 <div class="block">Move servers to a new group.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminClient.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#moveServersAndTables-java.util.Set-java.util.Set-java.lang.String-">moveServersAndTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#moveServersAndTables-java.util.Set-java.util.Set-java.lang.String-">moveServersAndTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
@@ -478,20 +506,20 @@
 <div class="block">Move given set of servers and tables to the specified target RegionServer group.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#moveServersAndTables-java.util.Set-java.util.Set-java.lang.String-">moveServersAndTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupInfoManagerImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#moveServersAndTables-java.util.Set-java.util.Set-java.lang.String-java.lang.String-">moveServersAndTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcGroup,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dstGroup)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupInfoManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#moveServersAndTables-java.util.Set-java.util.Set-java.lang.String-java.lang.String-">moveServersAndTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
@@ -500,6 +528,30 @@
 <div class="block">Move servers and tables to a new group.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupInfoManagerImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupAdminClient.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupInfoManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Remove decommissioned servers from rsgroup</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Remove decommissioned servers from rsgroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RSGroupAdminServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RSGroupInfoManagerImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateDefaultServers-java.util.SortedSet-">updateDefaultServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
@@ -544,6 +596,11 @@
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AccessController.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index 0dcb0a4..58169bb 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -438,19 +438,19 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilder.DataType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilder.DataType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterStatus.Option</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilder.DataType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilder.DataType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 971c141..560dfd9 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -203,11 +203,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
 </ul>
 </li>
 </ul>


[31/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html b/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html
index e8675ce..1aaa281 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html
@@ -304,191 +304,194 @@
 <span class="sourceLineNo">296</span><a name="line.296"></a>
 <span class="sourceLineNo">297</span>  @InterfaceAudience.Private<a name="line.297"></a>
 <span class="sourceLineNo">298</span>  public List&lt;RegionState&gt; getRegionsInTransition() {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    return this.intransition;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>  public String getClusterId() {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    return clusterId;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public String[] getMasterCoprocessors() {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    return masterCoprocessors;<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  public long getLastMajorCompactionTsForTable(TableName table) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    long result = Long.MAX_VALUE;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    for (ServerName server : getServers()) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      ServerLoad load = getLoad(server);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      for (RegionLoad rl : load.getRegionsLoad().values()) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        if (table.equals(HRegionInfo.getTable(rl.getName()))) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          result = Math.min(result, rl.getLastMajorCompactionTs());<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    return result == Long.MAX_VALUE ? 0 : result;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public long getLastMajorCompactionTsForRegion(final byte[] region) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    for (ServerName server : getServers()) {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      ServerLoad load = getLoad(server);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      RegionLoad rl = load.getRegionsLoad().get(region);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      if (rl != null) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        return rl.getLastMajorCompactionTs();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    return 0;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public boolean isBalancerOn() {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    return balancerOn != null &amp;&amp; balancerOn;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public Boolean getBalancerOn() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return balancerOn;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  public int getMasterInfoPort() {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    return masterInfoPort;<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  public String toString() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    StringBuilder sb = new StringBuilder(1024);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    sb.append("Master: " + master);<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>    int backupMastersSize = getBackupMastersSize();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    sb.append("\nNumber of backup masters: " + backupMastersSize);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    if (backupMastersSize &gt; 0) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      for (ServerName serverName: backupMasters) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        sb.append("\n  " + serverName);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      }<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    int serversSize = getServersSize();<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    sb.append("\nNumber of live region servers: " + serversSize);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    if (serversSize &gt; 0) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      for (ServerName serverName: liveServers.keySet()) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        sb.append("\n  " + serverName.getServerName());<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    int deadServerSize = getDeadServersSize();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    sb.append("\nNumber of dead region servers: " + deadServerSize);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (deadServerSize &gt; 0) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      for (ServerName serverName: deadServers) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        sb.append("\n  " + serverName);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>    sb.append("\nAverage load: " + getAverageLoad());<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    sb.append("\nNumber of requests: " + getRequestsCount());<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    sb.append("\nNumber of regions: " + getRegionsCount());<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>    int ritSize = (intransition != null) ? intransition.size() : 0;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    sb.append("\nNumber of regions in transition: " + ritSize);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    if (ritSize &gt; 0) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      for (RegionState state: intransition) {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        sb.append("\n  " + state.toDescriptiveString());<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      }<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return sb.toString();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  @InterfaceAudience.Private<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  public static Builder newBuilder() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    return new Builder();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>  /**<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * Builder for construct a ClusterStatus.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  @InterfaceAudience.Private<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  public static class Builder {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    private String hbaseVersion = null;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    private Map&lt;ServerName, ServerLoad&gt; liveServers = null;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    private List&lt;ServerName&gt; deadServers = null;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    private ServerName master = null;<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    private List&lt;ServerName&gt; backupMasters = null;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    private List&lt;RegionState&gt; intransition = null;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    private String clusterId = null;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    private String[] masterCoprocessors = null;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    private Boolean balancerOn = null;<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    private int masterInfoPort = -1;<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>    private Builder() {}<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>    public Builder setHBaseVersion(String hbaseVersion) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      this.hbaseVersion = hbaseVersion;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      return this;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>    public Builder setLiveServers(Map&lt;ServerName, ServerLoad&gt; liveServers) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      this.liveServers = liveServers;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      return this;<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>    public Builder setDeadServers(List&lt;ServerName&gt; deadServers) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      this.deadServers = deadServers;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return this;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    public Builder setMaster(ServerName master) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      this.master = master;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      return this;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    }<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>    public Builder setBackupMasters(List&lt;ServerName&gt; backupMasters) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      this.backupMasters = backupMasters;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      return this;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    public Builder setRegionState(List&lt;RegionState&gt; intransition) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      this.intransition = intransition;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      return this;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>    public Builder setClusterId(String clusterId) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      this.clusterId = clusterId;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      return this;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>    public Builder setMasterCoprocessors(String[] masterCoprocessors) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      this.masterCoprocessors = masterCoprocessors;<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      return this;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    public Builder setBalancerOn(Boolean balancerOn) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      this.balancerOn = balancerOn;<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      return this;<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    public Builder setMasterInfoPort(int masterInfoPort) {<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      this.masterInfoPort = masterInfoPort;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      return this;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>    public ClusterStatus build() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      return new ClusterStatus(hbaseVersion, clusterId, liveServers,<a name="line.462"></a>
-<span class="sourceLineNo">463</span>          deadServers, master, backupMasters, intransition, masterCoprocessors,<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          balancerOn, masterInfoPort);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>  /**<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   * Kinds of ClusterStatus<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   */<a name="line.470"></a>
-<span class="sourceLineNo">471</span>  public enum Option {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    HBASE_VERSION, /** status about hbase version */<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    CLUSTER_ID, /** status about cluster id */<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    BALANCER_ON, /** status about balancer is on or not */<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    LIVE_SERVERS, /** status about live region servers */<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    DEAD_SERVERS, /** status about dead region servers */<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    MASTER, /** status about master */<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    BACKUP_MASTERS, /** status about backup masters */<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    MASTER_COPROCESSORS, /** status about master coprocessors */<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    REGIONS_IN_TRANSITION, /** status about regions in transition */<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    MASTER_INFO_PORT; /** master info port **/<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>}<a name="line.483"></a>
+<span class="sourceLineNo">299</span>    if (intransition == null) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      return Collections.emptyList();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return Collections.unmodifiableList(intransition);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  public String getClusterId() {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    return clusterId;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>  public String[] getMasterCoprocessors() {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    return masterCoprocessors;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public long getLastMajorCompactionTsForTable(TableName table) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    long result = Long.MAX_VALUE;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    for (ServerName server : getServers()) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      ServerLoad load = getLoad(server);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      for (RegionLoad rl : load.getRegionsLoad().values()) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        if (table.equals(HRegionInfo.getTable(rl.getName()))) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>          result = Math.min(result, rl.getLastMajorCompactionTs());<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        }<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    }<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    return result == Long.MAX_VALUE ? 0 : result;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>  }<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>  public long getLastMajorCompactionTsForRegion(final byte[] region) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    for (ServerName server : getServers()) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      ServerLoad load = getLoad(server);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      RegionLoad rl = load.getRegionsLoad().get(region);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      if (rl != null) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        return rl.getLastMajorCompactionTs();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    return 0;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  public boolean isBalancerOn() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    return balancerOn != null &amp;&amp; balancerOn;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>  }<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  public Boolean getBalancerOn() {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return balancerOn;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public int getMasterInfoPort() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return masterInfoPort;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  public String toString() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    StringBuilder sb = new StringBuilder(1024);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    sb.append("Master: " + master);<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>    int backupMastersSize = getBackupMastersSize();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    sb.append("\nNumber of backup masters: " + backupMastersSize);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    if (backupMastersSize &gt; 0) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      for (ServerName serverName: backupMasters) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        sb.append("\n  " + serverName);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>    int serversSize = getServersSize();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    sb.append("\nNumber of live region servers: " + serversSize);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    if (serversSize &gt; 0) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      for (ServerName serverName: liveServers.keySet()) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        sb.append("\n  " + serverName.getServerName());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>    int deadServerSize = getDeadServersSize();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    sb.append("\nNumber of dead region servers: " + deadServerSize);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    if (deadServerSize &gt; 0) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      for (ServerName serverName: deadServers) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        sb.append("\n  " + serverName);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>    sb.append("\nAverage load: " + getAverageLoad());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    sb.append("\nNumber of requests: " + getRequestsCount());<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    sb.append("\nNumber of regions: " + getRegionsCount());<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>    int ritSize = (intransition != null) ? intransition.size() : 0;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    sb.append("\nNumber of regions in transition: " + ritSize);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    if (ritSize &gt; 0) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      for (RegionState state: intransition) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        sb.append("\n  " + state.toDescriptiveString());<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    return sb.toString();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>  @InterfaceAudience.Private<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  public static Builder newBuilder() {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return new Builder();<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>  /**<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * Builder for construct a ClusterStatus.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  @InterfaceAudience.Private<a name="line.399"></a>
+<span class="sourceLineNo">400</span>  public static class Builder {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    private String hbaseVersion = null;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    private Map&lt;ServerName, ServerLoad&gt; liveServers = null;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    private List&lt;ServerName&gt; deadServers = null;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    private ServerName master = null;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    private List&lt;ServerName&gt; backupMasters = null;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    private List&lt;RegionState&gt; intransition = null;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    private String clusterId = null;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    private String[] masterCoprocessors = null;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    private Boolean balancerOn = null;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    private int masterInfoPort = -1;<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    private Builder() {}<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>    public Builder setHBaseVersion(String hbaseVersion) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      this.hbaseVersion = hbaseVersion;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      return this;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>    public Builder setLiveServers(Map&lt;ServerName, ServerLoad&gt; liveServers) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      this.liveServers = liveServers;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      return this;<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>    public Builder setDeadServers(List&lt;ServerName&gt; deadServers) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      this.deadServers = deadServers;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      return this;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>    public Builder setMaster(ServerName master) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      this.master = master;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      return this;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>    public Builder setBackupMasters(List&lt;ServerName&gt; backupMasters) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      this.backupMasters = backupMasters;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      return this;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>    public Builder setRegionState(List&lt;RegionState&gt; intransition) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      this.intransition = intransition;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      return this;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>    public Builder setClusterId(String clusterId) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      this.clusterId = clusterId;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return this;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    public Builder setMasterCoprocessors(String[] masterCoprocessors) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>      this.masterCoprocessors = masterCoprocessors;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      return this;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    }<a name="line.452"></a>
+<span class="sourceLineNo">453</span><a name="line.453"></a>
+<span class="sourceLineNo">454</span>    public Builder setBalancerOn(Boolean balancerOn) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      this.balancerOn = balancerOn;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      return this;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
+<span class="sourceLineNo">458</span><a name="line.458"></a>
+<span class="sourceLineNo">459</span>    public Builder setMasterInfoPort(int masterInfoPort) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      this.masterInfoPort = masterInfoPort;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>      return this;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>    public ClusterStatus build() {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      return new ClusterStatus(hbaseVersion, clusterId, liveServers,<a name="line.465"></a>
+<span class="sourceLineNo">466</span>          deadServers, master, backupMasters, intransition, masterCoprocessors,<a name="line.466"></a>
+<span class="sourceLineNo">467</span>          balancerOn, masterInfoPort);<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    }<a name="line.468"></a>
+<span class="sourceLineNo">469</span>  }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>  /**<a name="line.471"></a>
+<span class="sourceLineNo">472</span>   * Kinds of ClusterStatus<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   */<a name="line.473"></a>
+<span class="sourceLineNo">474</span>  public enum Option {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    HBASE_VERSION, /** status about hbase version */<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    CLUSTER_ID, /** status about cluster id */<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    BALANCER_ON, /** status about balancer is on or not */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    LIVE_SERVERS, /** status about live region servers */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    DEAD_SERVERS, /** status about dead region servers */<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    MASTER, /** status about master */<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    BACKUP_MASTERS, /** status about backup masters */<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    MASTER_COPROCESSORS, /** status about master coprocessors */<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    REGIONS_IN_TRANSITION, /** status about regions in transition */<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    MASTER_INFO_PORT; /** master info port **/<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>}<a name="line.486"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html b/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html
index e8675ce..1aaa281 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html
@@ -304,191 +304,194 @@
 <span class="sourceLineNo">296</span><a name="line.296"></a>
 <span class="sourceLineNo">297</span>  @InterfaceAudience.Private<a name="line.297"></a>
 <span class="sourceLineNo">298</span>  public List&lt;RegionState&gt; getRegionsInTransition() {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    return this.intransition;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>  public String getClusterId() {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    return clusterId;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public String[] getMasterCoprocessors() {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    return masterCoprocessors;<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  public long getLastMajorCompactionTsForTable(TableName table) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    long result = Long.MAX_VALUE;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    for (ServerName server : getServers()) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      ServerLoad load = getLoad(server);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      for (RegionLoad rl : load.getRegionsLoad().values()) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        if (table.equals(HRegionInfo.getTable(rl.getName()))) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          result = Math.min(result, rl.getLastMajorCompactionTs());<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    return result == Long.MAX_VALUE ? 0 : result;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public long getLastMajorCompactionTsForRegion(final byte[] region) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    for (ServerName server : getServers()) {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      ServerLoad load = getLoad(server);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      RegionLoad rl = load.getRegionsLoad().get(region);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      if (rl != null) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        return rl.getLastMajorCompactionTs();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    return 0;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public boolean isBalancerOn() {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    return balancerOn != null &amp;&amp; balancerOn;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public Boolean getBalancerOn() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return balancerOn;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  public int getMasterInfoPort() {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    return masterInfoPort;<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  public String toString() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    StringBuilder sb = new StringBuilder(1024);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    sb.append("Master: " + master);<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>    int backupMastersSize = getBackupMastersSize();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    sb.append("\nNumber of backup masters: " + backupMastersSize);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    if (backupMastersSize &gt; 0) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      for (ServerName serverName: backupMasters) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        sb.append("\n  " + serverName);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      }<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    int serversSize = getServersSize();<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    sb.append("\nNumber of live region servers: " + serversSize);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    if (serversSize &gt; 0) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      for (ServerName serverName: liveServers.keySet()) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        sb.append("\n  " + serverName.getServerName());<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    int deadServerSize = getDeadServersSize();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    sb.append("\nNumber of dead region servers: " + deadServerSize);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (deadServerSize &gt; 0) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      for (ServerName serverName: deadServers) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        sb.append("\n  " + serverName);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>    sb.append("\nAverage load: " + getAverageLoad());<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    sb.append("\nNumber of requests: " + getRequestsCount());<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    sb.append("\nNumber of regions: " + getRegionsCount());<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>    int ritSize = (intransition != null) ? intransition.size() : 0;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    sb.append("\nNumber of regions in transition: " + ritSize);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    if (ritSize &gt; 0) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      for (RegionState state: intransition) {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        sb.append("\n  " + state.toDescriptiveString());<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      }<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return sb.toString();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  @InterfaceAudience.Private<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  public static Builder newBuilder() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    return new Builder();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>  /**<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * Builder for construct a ClusterStatus.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  @InterfaceAudience.Private<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  public static class Builder {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    private String hbaseVersion = null;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    private Map&lt;ServerName, ServerLoad&gt; liveServers = null;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    private List&lt;ServerName&gt; deadServers = null;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    private ServerName master = null;<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    private List&lt;ServerName&gt; backupMasters = null;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    private List&lt;RegionState&gt; intransition = null;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    private String clusterId = null;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    private String[] masterCoprocessors = null;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    private Boolean balancerOn = null;<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    private int masterInfoPort = -1;<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>    private Builder() {}<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>    public Builder setHBaseVersion(String hbaseVersion) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      this.hbaseVersion = hbaseVersion;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      return this;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>    public Builder setLiveServers(Map&lt;ServerName, ServerLoad&gt; liveServers) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      this.liveServers = liveServers;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      return this;<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>    public Builder setDeadServers(List&lt;ServerName&gt; deadServers) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      this.deadServers = deadServers;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return this;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    public Builder setMaster(ServerName master) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      this.master = master;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      return this;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    }<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>    public Builder setBackupMasters(List&lt;ServerName&gt; backupMasters) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      this.backupMasters = backupMasters;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      return this;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    public Builder setRegionState(List&lt;RegionState&gt; intransition) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      this.intransition = intransition;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      return this;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>    public Builder setClusterId(String clusterId) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      this.clusterId = clusterId;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      return this;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>    public Builder setMasterCoprocessors(String[] masterCoprocessors) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      this.masterCoprocessors = masterCoprocessors;<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      return this;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    public Builder setBalancerOn(Boolean balancerOn) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      this.balancerOn = balancerOn;<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      return this;<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    public Builder setMasterInfoPort(int masterInfoPort) {<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      this.masterInfoPort = masterInfoPort;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      return this;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>    public ClusterStatus build() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      return new ClusterStatus(hbaseVersion, clusterId, liveServers,<a name="line.462"></a>
-<span class="sourceLineNo">463</span>          deadServers, master, backupMasters, intransition, masterCoprocessors,<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          balancerOn, masterInfoPort);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>  /**<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   * Kinds of ClusterStatus<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   */<a name="line.470"></a>
-<span class="sourceLineNo">471</span>  public enum Option {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    HBASE_VERSION, /** status about hbase version */<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    CLUSTER_ID, /** status about cluster id */<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    BALANCER_ON, /** status about balancer is on or not */<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    LIVE_SERVERS, /** status about live region servers */<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    DEAD_SERVERS, /** status about dead region servers */<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    MASTER, /** status about master */<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    BACKUP_MASTERS, /** status about backup masters */<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    MASTER_COPROCESSORS, /** status about master coprocessors */<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    REGIONS_IN_TRANSITION, /** status about regions in transition */<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    MASTER_INFO_PORT; /** master info port **/<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>}<a name="line.483"></a>
+<span class="sourceLineNo">299</span>    if (intransition == null) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      return Collections.emptyList();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return Collections.unmodifiableList(intransition);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  public String getClusterId() {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    return clusterId;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>  public String[] getMasterCoprocessors() {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    return masterCoprocessors;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public long getLastMajorCompactionTsForTable(TableName table) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    long result = Long.MAX_VALUE;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    for (ServerName server : getServers()) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      ServerLoad load = getLoad(server);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      for (RegionLoad rl : load.getRegionsLoad().values()) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        if (table.equals(HRegionInfo.getTable(rl.getName()))) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>          result = Math.min(result, rl.getLastMajorCompactionTs());<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        }<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    }<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    return result == Long.MAX_VALUE ? 0 : result;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>  }<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>  public long getLastMajorCompactionTsForRegion(final byte[] region) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    for (ServerName server : getServers()) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      ServerLoad load = getLoad(server);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      RegionLoad rl = load.getRegionsLoad().get(region);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      if (rl != null) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        return rl.getLastMajorCompactionTs();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    return 0;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  public boolean isBalancerOn() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    return balancerOn != null &amp;&amp; balancerOn;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>  }<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  public Boolean getBalancerOn() {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return balancerOn;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public int getMasterInfoPort() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return masterInfoPort;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  public String toString() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    StringBuilder sb = new StringBuilder(1024);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    sb.append("Master: " + master);<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>    int backupMastersSize = getBackupMastersSize();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    sb.append("\nNumber of backup masters: " + backupMastersSize);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    if (backupMastersSize &gt; 0) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      for (ServerName serverName: backupMasters) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        sb.append("\n  " + serverName);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>    int serversSize = getServersSize();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    sb.append("\nNumber of live region servers: " + serversSize);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    if (serversSize &gt; 0) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      for (ServerName serverName: liveServers.keySet()) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        sb.append("\n  " + serverName.getServerName());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>    int deadServerSize = getDeadServersSize();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    sb.append("\nNumber of dead region servers: " + deadServerSize);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    if (deadServerSize &gt; 0) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      for (ServerName serverName: deadServers) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        sb.append("\n  " + serverName);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>    sb.append("\nAverage load: " + getAverageLoad());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    sb.append("\nNumber of requests: " + getRequestsCount());<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    sb.append("\nNumber of regions: " + getRegionsCount());<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>    int ritSize = (intransition != null) ? intransition.size() : 0;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    sb.append("\nNumber of regions in transition: " + ritSize);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    if (ritSize &gt; 0) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      for (RegionState state: intransition) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        sb.append("\n  " + state.toDescriptiveString());<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    return sb.toString();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>  @InterfaceAudience.Private<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  public static Builder newBuilder() {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return new Builder();<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>  /**<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * Builder for construct a ClusterStatus.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  @InterfaceAudience.Private<a name="line.399"></a>
+<span class="sourceLineNo">400</span>  public static class Builder {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    private String hbaseVersion = null;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    private Map&lt;ServerName, ServerLoad&gt; liveServers = null;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    private List&lt;ServerName&gt; deadServers = null;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    private ServerName master = null;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    private List&lt;ServerName&gt; backupMasters = null;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    private List&lt;RegionState&gt; intransition = null;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    private String clusterId = null;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    private String[] masterCoprocessors = null;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    private Boolean balancerOn = null;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    private int masterInfoPort = -1;<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    private Builder() {}<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>    public Builder setHBaseVersion(String hbaseVersion) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      this.hbaseVersion = hbaseVersion;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      return this;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>    public Builder setLiveServers(Map&lt;ServerName, ServerLoad&gt; liveServers) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      this.liveServers = liveServers;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      return this;<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>    public Builder setDeadServers(List&lt;ServerName&gt; deadServers) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      this.deadServers = deadServers;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      return this;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>    public Builder setMaster(ServerName master) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      this.master = master;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      return this;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>    public Builder setBackupMasters(List&lt;ServerName&gt; backupMasters) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      this.backupMasters = backupMasters;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      return this;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>    public Builder setRegionState(List&lt;RegionState&gt; intransition) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      this.intransition = intransition;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      return this;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>    public Builder setClusterId(String clusterId) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      this.clusterId = clusterId;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return this;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    public Builder setMasterCoprocessors(String[] masterCoprocessors) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>      this.masterCoprocessors = masterCoprocessors;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      return this;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    }<a name="line.452"></a>
+<span class="sourceLineNo">453</span><a name="line.453"></a>
+<span class="sourceLineNo">454</span>    public Builder setBalancerOn(Boolean balancerOn) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      this.balancerOn = balancerOn;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      return this;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
+<span class="sourceLineNo">458</span><a name="line.458"></a>
+<span class="sourceLineNo">459</span>    public Builder setMasterInfoPort(int masterInfoPort) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      this.masterInfoPort = masterInfoPort;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>      return this;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>    public ClusterStatus build() {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      return new ClusterStatus(hbaseVersion, clusterId, liveServers,<a name="line.465"></a>
+<span class="sourceLineNo">466</span>          deadServers, master, backupMasters, intransition, masterCoprocessors,<a name="line.466"></a>
+<span class="sourceLineNo">467</span>          balancerOn, masterInfoPort);<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    }<a name="line.468"></a>
+<span class="sourceLineNo">469</span>  }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>  /**<a name="line.471"></a>
+<span class="sourceLineNo">472</span>   * Kinds of ClusterStatus<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   */<a name="line.473"></a>
+<span class="sourceLineNo">474</span>  public enum Option {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    HBASE_VERSION, /** status about hbase version */<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    CLUSTER_ID, /** status about cluster id */<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    BALANCER_ON, /** status about balancer is on or not */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    LIVE_SERVERS, /** status about live region servers */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    DEAD_SERVERS, /** status about dead region servers */<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    MASTER, /** status about master */<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    BACKUP_MASTERS, /** status about backup masters */<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    MASTER_COPROCESSORS, /** status about master coprocessors */<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    REGIONS_IN_TRANSITION, /** status about regions in transition */<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    MASTER_INFO_PORT; /** master info port **/<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>}<a name="line.486"></a>
 
 
 


[43/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.html
index 38ef882..2421042 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.html
@@ -287,7 +287,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.u
 til.List-">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.ht
 ml#postCompletedCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCompletedCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Mas
 terObserver.html#postCompletedMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postCompletedModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableN
 ame-">postCompletedTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 erver.html#postDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../.
 ./../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerCon
 fig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">postGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">postGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.
 apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitA
 ction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postModifyTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.ap
 ache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.co
 processor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.Tabl
 eName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.
 ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/co
 processor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverC
 ontext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org
 .apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a>, <a href=".
 ./../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.Ob
 serverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache
 .hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames
 -org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a>, <a href="../../../../../../org/
 apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-
 org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.
 hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a>, <
 a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreS
 napshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase
 /coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apach
 e.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegionAfterMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSpli
 tRegionBeforeMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hado
 op.hbase.client.RegionInfo-boolean-">preUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.u
 til.List-">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.ht
 ml#postCompletedCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCompletedCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Mas
 terObserver.html#postCompletedMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postCompletedModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableN
 ame-">postCompletedTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 erver.html#postDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../.
 ./../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerCon
 fig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">postGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">postGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.
 apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitA
 ction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postModifyTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.ap
 ache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbas
 e.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEn
 abled</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hado
 op.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.h
 tml#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.
 ObserverContext-java.lang.String-">preAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a>, <a href="../..
 /../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a>, <a href="../../
 ../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-j
 ava.lang.String-">preDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetCluste
 rStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.
 ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/M
 asterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-
 ">preMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescript
 or-">preModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coproc
 essor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</
 a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache
 .hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.Str
 ing-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../..
 /../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegionAfterMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a>, <a
  href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index c3f5567..9acb3f2 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -182,14 +182,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index 0b93523..a776584 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -273,12 +273,12 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 8aaf9f2..9e5e319 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -348,9 +348,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index 783f6a2..6eba229 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -293,9 +293,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
 </ul>
 </li>


[02/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
index 56de5ac..8802056 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html
@@ -31,847 +31,957 @@
 <span class="sourceLineNo">023</span>import static org.junit.Assert.assertTrue;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import static org.junit.Assert.fail;<a name="line.24"></a>
 <span class="sourceLineNo">025</span><a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.security.SecureRandom;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.EnumSet;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.HashSet;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.LinkedList;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.List;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.Map;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.Set;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.TreeMap;<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.commons.logging.Log;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.commons.logging.LogFactory;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.ClusterStatus;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ClusterStatus.Option;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseCluster;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.RegionLoad;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.ServerName;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.TableName;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.Waiter;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.net.Address;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.junit.Assert;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.junit.Before;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.junit.Rule;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.junit.Test;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.junit.rules.TestName;<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos;<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>public abstract class TestRSGroupsBase {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  protected static final Log LOG = LogFactory.getLog(TestRSGroupsBase.class);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  @Rule<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  public TestName name = new TestName();<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  //shared<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  protected final static String groupPrefix = "Group";<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  protected final static String tablePrefix = "Group";<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  protected final static SecureRandom rand = new SecureRandom();<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  //shared, cluster type specific<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  protected static HBaseTestingUtility TEST_UTIL;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  protected static Admin admin;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  protected static HBaseCluster cluster;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  protected static RSGroupAdmin rsGroupAdmin;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  public final static long WAIT_TIMEOUT = 60000*5;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public final static int NUM_SLAVES_BASE = 4; //number of slaves for the smallest cluster<a name="line.83"></a>
+<span class="sourceLineNo">026</span>import com.google.common.collect.Lists;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.io.IOException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.security.SecureRandom;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.EnumSet;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.HashSet;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.LinkedList;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.List;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.Map;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.Set;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.TreeMap;<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.commons.logging.Log;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.commons.logging.LogFactory;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.ClusterStatus;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.ClusterStatus.Option;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HBaseCluster;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.RegionLoad;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.ServerName;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.TableName;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.Waiter;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.constraint.ConstraintException;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.net.Address;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.junit.Assert;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.junit.Before;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.junit.Rule;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.junit.Test;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.junit.rules.TestName;<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Maps;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetServerInfoRequest;<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>public abstract class TestRSGroupsBase {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  protected static final Log LOG = LogFactory.getLog(TestRSGroupsBase.class);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  @Rule<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  public TestName name = new TestName();<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  //shared<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  protected final static String groupPrefix = "Group";<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  protected final static String tablePrefix = "Group";<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  protected final static SecureRandom rand = new SecureRandom();<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  //shared, cluster type specific<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  protected static HBaseTestingUtility TEST_UTIL;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  protected static Admin admin;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  protected static HBaseCluster cluster;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  protected static RSGroupAdmin rsGroupAdmin;<a name="line.83"></a>
 <span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  // Per test variables<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  TableName tableName;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  @Before<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  public void setup() {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    LOG.info(name.getMethodName());<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    tableName = TableName.valueOf(tablePrefix + "_" + name.getMethodName());<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  }<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  protected RSGroupInfo addGroup(String groupName, int serverCount)<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      throws IOException, InterruptedException {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    RSGroupInfo defaultInfo = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    assertTrue(defaultInfo != null);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    assertTrue(defaultInfo.getServers().size() &gt;= serverCount);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    rsGroupAdmin.addRSGroup(groupName);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    Set&lt;Address&gt; set = new HashSet&lt;&gt;();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for(Address server: defaultInfo.getServers()) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      if(set.size() == serverCount) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>        break;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      set.add(server);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    rsGroupAdmin.moveServers(set, groupName);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    RSGroupInfo result = rsGroupAdmin.getRSGroupInfo(groupName);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    assertTrue(result.getServers().size() &gt;= serverCount);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    return result;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  }<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  void removeGroup(String groupName) throws IOException {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    RSGroupInfo RSGroupInfo = rsGroupAdmin.getRSGroupInfo(groupName);<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    rsGroupAdmin.moveTables(RSGroupInfo.getTables(), RSGroupInfo.DEFAULT_GROUP);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    rsGroupAdmin.moveServers(RSGroupInfo.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    rsGroupAdmin.removeRSGroup(groupName);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  }<a name="line.118"></a>
-<span class="sourceLineNo">119</span><a name="line.119"></a>
-<span class="sourceLineNo">120</span>  protected void deleteTableIfNecessary() throws IOException {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    for (HTableDescriptor desc : TEST_UTIL.getAdmin().listTables(tablePrefix+".*")) {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      TEST_UTIL.deleteTable(desc.getTableName());<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  protected void deleteNamespaceIfNecessary() throws IOException {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    for (NamespaceDescriptor desc : TEST_UTIL.getAdmin().listNamespaceDescriptors()) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      if(desc.getName().startsWith(tablePrefix)) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        admin.deleteNamespace(desc.getName());<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    }<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>  protected void deleteGroups() throws IOException {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    RSGroupAdmin groupAdmin =<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        new RSGroupAdminClient(TEST_UTIL.getConnection());<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    for(RSGroupInfo group: groupAdmin.listRSGroups()) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>        groupAdmin.moveTables(group.getTables(), RSGroupInfo.DEFAULT_GROUP);<a name="line.139"></a>
-<span class="sourceLineNo">140</span>        groupAdmin.moveServers(group.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        groupAdmin.removeRSGroup(group.getName());<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      }<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    }<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  public Map&lt;TableName, List&lt;String&gt;&gt; getTableRegionMap() throws IOException {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    Map&lt;TableName, List&lt;String&gt;&gt; map = Maps.newTreeMap();<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    Map&lt;TableName, Map&lt;ServerName, List&lt;String&gt;&gt;&gt; tableServerRegionMap<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        = getTableServerRegionMap();<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    for(TableName tableName : tableServerRegionMap.keySet()) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      if(!map.containsKey(tableName)) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        map.put(tableName, new LinkedList&lt;&gt;());<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      for(List&lt;String&gt; subset: tableServerRegionMap.get(tableName).values()) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        map.get(tableName).addAll(subset);<a name="line.155"></a>
+<span class="sourceLineNo">085</span>  public final static long WAIT_TIMEOUT = 60000*5;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public final static int NUM_SLAVES_BASE = 4; //number of slaves for the smallest cluster<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  // Per test variables<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  TableName tableName;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  @Before<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  public void setup() {<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    LOG.info(name.getMethodName());<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    tableName = TableName.valueOf(tablePrefix + "_" + name.getMethodName());<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  protected RSGroupInfo addGroup(String groupName, int serverCount)<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      throws IOException, InterruptedException {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    RSGroupInfo defaultInfo = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    assertTrue(defaultInfo != null);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertTrue(defaultInfo.getServers().size() &gt;= serverCount);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    rsGroupAdmin.addRSGroup(groupName);<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>    Set&lt;Address&gt; set = new HashSet&lt;&gt;();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    for(Address server: defaultInfo.getServers()) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      if(set.size() == serverCount) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        break;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      }<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      set.add(server);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    rsGroupAdmin.moveServers(set, groupName);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    RSGroupInfo result = rsGroupAdmin.getRSGroupInfo(groupName);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    assertTrue(result.getServers().size() &gt;= serverCount);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    return result;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  void removeGroup(String groupName) throws IOException {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    RSGroupInfo RSGroupInfo = rsGroupAdmin.getRSGroupInfo(groupName);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    rsGroupAdmin.moveTables(RSGroupInfo.getTables(), RSGroupInfo.DEFAULT_GROUP);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    rsGroupAdmin.moveServers(RSGroupInfo.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    rsGroupAdmin.removeRSGroup(groupName);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  protected void deleteTableIfNecessary() throws IOException {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    for (HTableDescriptor desc : TEST_UTIL.getAdmin().listTables(tablePrefix+".*")) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      TEST_UTIL.deleteTable(desc.getTableName());<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>  protected void deleteNamespaceIfNecessary() throws IOException {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    for (NamespaceDescriptor desc : TEST_UTIL.getAdmin().listNamespaceDescriptors()) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      if(desc.getName().startsWith(tablePrefix)) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        admin.deleteNamespace(desc.getName());<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>  protected void deleteGroups() throws IOException {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    RSGroupAdmin groupAdmin =<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        new RSGroupAdminClient(TEST_UTIL.getConnection());<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    for(RSGroupInfo group: groupAdmin.listRSGroups()) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        groupAdmin.moveTables(group.getTables(), RSGroupInfo.DEFAULT_GROUP);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        groupAdmin.moveServers(group.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        groupAdmin.removeRSGroup(group.getName());<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      }<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    }<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  public Map&lt;TableName, List&lt;String&gt;&gt; getTableRegionMap() throws IOException {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    Map&lt;TableName, List&lt;String&gt;&gt; map = Maps.newTreeMap();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    Map&lt;TableName, Map&lt;ServerName, List&lt;String&gt;&gt;&gt; tableServerRegionMap<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        = getTableServerRegionMap();<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    for(TableName tableName : tableServerRegionMap.keySet()) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      if(!map.containsKey(tableName)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        map.put(tableName, new LinkedList&lt;&gt;());<a name="line.155"></a>
 <span class="sourceLineNo">156</span>      }<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    return map;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  }<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  public Map&lt;TableName, Map&lt;ServerName, List&lt;String&gt;&gt;&gt; getTableServerRegionMap()<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      throws IOException {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    Map&lt;TableName, Map&lt;ServerName, List&lt;String&gt;&gt;&gt; map = Maps.newTreeMap();<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    ClusterStatus status = TEST_UTIL.getHBaseClusterInterface().getClusterStatus();<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    for(ServerName serverName : status.getServers()) {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      for(RegionLoad rl : status.getLoad(serverName).getRegionsLoad().values()) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        TableName tableName = null;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        try {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>          tableName = RegionInfo.getTable(rl.getName());<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        } catch (IllegalArgumentException e) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>          LOG.warn("Failed parse a table name from regionname=" +<a name="line.171"></a>
-<span class="sourceLineNo">172</span>              Bytes.toStringBinary(rl.getName()));<a name="line.172"></a>
-<span class="sourceLineNo">173</span>          continue;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>        if(!map.containsKey(tableName)) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>          map.put(tableName, new TreeMap&lt;&gt;());<a name="line.176"></a>
+<span class="sourceLineNo">157</span>      for(List&lt;String&gt; subset: tableServerRegionMap.get(tableName).values()) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        map.get(tableName).addAll(subset);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    return map;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public Map&lt;TableName, Map&lt;ServerName, List&lt;String&gt;&gt;&gt; getTableServerRegionMap()<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      throws IOException {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    Map&lt;TableName, Map&lt;ServerName, List&lt;String&gt;&gt;&gt; map = Maps.newTreeMap();<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    ClusterStatus status = TEST_UTIL.getHBaseClusterInterface().getClusterStatus();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    for(ServerName serverName : status.getServers()) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      for(RegionLoad rl : status.getLoad(serverName).getRegionsLoad().values()) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        TableName tableName = null;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        try {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>          tableName = RegionInfo.getTable(rl.getName());<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        } catch (IllegalArgumentException e) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>          LOG.warn("Failed parse a table name from regionname=" +<a name="line.174"></a>
+<span class="sourceLineNo">175</span>              Bytes.toStringBinary(rl.getName()));<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          continue;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>        }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        if(!map.get(tableName).containsKey(serverName)) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>          map.get(tableName).put(serverName, new LinkedList&lt;&gt;());<a name="line.179"></a>
+<span class="sourceLineNo">178</span>        if(!map.containsKey(tableName)) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>          map.put(tableName, new TreeMap&lt;&gt;());<a name="line.179"></a>
 <span class="sourceLineNo">180</span>        }<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        map.get(tableName).get(serverName).add(rl.getNameAsString());<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      }<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    return map;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  }<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>  @Test<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public void testBogusArgs() throws Exception {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    assertNull(rsGroupAdmin.getRSGroupInfoOfTable(TableName.valueOf("nonexistent")));<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    assertNull(rsGroupAdmin.getRSGroupOfServer(Address.fromParts("bogus",123)));<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    assertNull(rsGroupAdmin.getRSGroupInfo("bogus"));<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>    try {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      rsGroupAdmin.removeRSGroup("bogus");<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      fail("Expected removing bogus group to fail");<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    } catch(ConstraintException ex) {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      //expected<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>    try {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      rsGroupAdmin.moveTables(Sets.newHashSet(TableName.valueOf("bogustable")), "bogus");<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      fail("Expected move with bogus group to fail");<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    } catch(ConstraintException ex) {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      //expected<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>    try {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      rsGroupAdmin.moveServers(Sets.newHashSet(Address.fromParts("bogus",123)), "bogus");<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      fail("Expected move with bogus group to fail");<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    } catch(ConstraintException ex) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      //expected<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>    try {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      admin.setBalancerRunning(true,true);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      rsGroupAdmin.balanceRSGroup("bogus");<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      admin.setBalancerRunning(false,true);<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      fail("Expected move with bogus group to fail");<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    } catch(ConstraintException ex) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      //expected<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  }<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>  @Test<a name="line.224"></a>
-<span class="sourceLineNo">225</span>  public void testCreateMultiRegion() throws IOException {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    byte[] end = {1,3,5,7,9};<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    byte[] start = {0,2,4,6,8};<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    byte[][] f = {Bytes.toBytes("f")};<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    TEST_UTIL.createTable(tableName, f,1,start,end,10);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>  @Test<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  public void testCreateAndDrop() throws Exception {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    TEST_UTIL.createTable(tableName, Bytes.toBytes("cf"));<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    //wait for created table to be assigned<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      @Override<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      public boolean evaluate() throws Exception {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>        return getTableRegionMap().get(tableName) != null;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      }<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    });<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    TEST_UTIL.deleteTable(tableName);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>  }<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @Test<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  public void testSimpleRegionServerMove() throws IOException,<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      InterruptedException {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    int initNumGroups = rsGroupAdmin.listRSGroups().size();<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    RSGroupInfo appInfo = addGroup(getGroupName(name.getMethodName()), 1);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    RSGroupInfo adminInfo = addGroup(getGroupName(name.getMethodName()), 1);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    RSGroupInfo dInfo = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    Assert.assertEquals(initNumGroups + 2, rsGroupAdmin.listRSGroups().size());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    assertEquals(1, adminInfo.getServers().size());<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    assertEquals(1, appInfo.getServers().size());<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    assertEquals(getNumServers() - 2, dInfo.getServers().size());<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    rsGroupAdmin.moveServers(appInfo.getServers(),<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        RSGroupInfo.DEFAULT_GROUP);<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    rsGroupAdmin.removeRSGroup(appInfo.getName());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    rsGroupAdmin.moveServers(adminInfo.getServers(),<a name="line.260"></a>
+<span class="sourceLineNo">181</span>        if(!map.get(tableName).containsKey(serverName)) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>          map.get(tableName).put(serverName, new LinkedList&lt;&gt;());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        map.get(tableName).get(serverName).add(rl.getNameAsString());<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      }<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    return map;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  }<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>  @Test<a name="line.190"></a>
+<span class="sourceLineNo">191</span>  public void testBogusArgs() throws Exception {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    assertNull(rsGroupAdmin.getRSGroupInfoOfTable(TableName.valueOf("nonexistent")));<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    assertNull(rsGroupAdmin.getRSGroupOfServer(Address.fromParts("bogus",123)));<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    assertNull(rsGroupAdmin.getRSGroupInfo("bogus"));<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>    try {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      rsGroupAdmin.removeRSGroup("bogus");<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      fail("Expected removing bogus group to fail");<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    } catch(ConstraintException ex) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      //expected<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    try {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      rsGroupAdmin.moveTables(Sets.newHashSet(TableName.valueOf("bogustable")), "bogus");<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      fail("Expected move with bogus group to fail");<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    } catch(ConstraintException ex) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      //expected<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>    try {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>      rsGroupAdmin.moveServers(Sets.newHashSet(Address.fromParts("bogus",123)), "bogus");<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      fail("Expected move with bogus group to fail");<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    } catch(ConstraintException ex) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      //expected<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>    try {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      admin.setBalancerRunning(true,true);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      rsGroupAdmin.balanceRSGroup("bogus");<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      admin.setBalancerRunning(false,true);<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      fail("Expected move with bogus group to fail");<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    } catch(ConstraintException ex) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      //expected<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>  @Test<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  public void testCreateMultiRegion() throws IOException {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    byte[] end = {1,3,5,7,9};<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    byte[] start = {0,2,4,6,8};<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    byte[][] f = {Bytes.toBytes("f")};<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    TEST_UTIL.createTable(tableName, f,1,start,end,10);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span>  @Test<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  public void testCreateAndDrop() throws Exception {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    TEST_UTIL.createTable(tableName, Bytes.toBytes("cf"));<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    //wait for created table to be assigned<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      @Override<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      public boolean evaluate() throws Exception {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        return getTableRegionMap().get(tableName) != null;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    });<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    TEST_UTIL.deleteTable(tableName);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  @Test<a name="line.249"></a>
+<span class="sourceLineNo">250</span>  public void testSimpleRegionServerMove() throws IOException,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      InterruptedException {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    int initNumGroups = rsGroupAdmin.listRSGroups().size();<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    RSGroupInfo appInfo = addGroup(getGroupName(name.getMethodName()), 1);<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    RSGroupInfo adminInfo = addGroup(getGroupName(name.getMethodName()), 1);<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    RSGroupInfo dInfo = rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    Assert.assertEquals(initNumGroups + 2, rsGroupAdmin.listRSGroups().size());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    assertEquals(1, adminInfo.getServers().size());<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    assertEquals(1, appInfo.getServers().size());<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    assertEquals(getNumServers() - 2, dInfo.getServers().size());<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    rsGroupAdmin.moveServers(appInfo.getServers(),<a name="line.260"></a>
 <span class="sourceLineNo">261</span>        RSGroupInfo.DEFAULT_GROUP);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    rsGroupAdmin.removeRSGroup(adminInfo.getName());<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    Assert.assertEquals(rsGroupAdmin.listRSGroups().size(), initNumGroups);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>  // return the real number of region servers, excluding the master embedded region server in 2.0+<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  public int getNumServers() throws IOException {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    ClusterStatus status =<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        admin.getClusterStatus(EnumSet.of(Option.MASTER, Option.LIVE_SERVERS));<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    ServerName master = status.getMaster();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    int count = 0;<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    for (ServerName sn : status.getServers()) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      if (!sn.equals(master)) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        count++;<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      }<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    return count;<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  @Test<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  public void testMoveServers() throws Exception {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    //create groups and assign servers<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    addGroup("bar", 3);<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    rsGroupAdmin.addRSGroup("foo");<a name="line.284"></a>
-<span class="sourceLineNo">285</span><a name="line.285"></a>
-<span class="sourceLineNo">286</span>    RSGroupInfo barGroup = rsGroupAdmin.getRSGroupInfo("bar");<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    RSGroupInfo fooGroup = rsGroupAdmin.getRSGroupInfo("foo");<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    assertEquals(3, barGroup.getServers().size());<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    assertEquals(0, fooGroup.getServers().size());<a name="line.289"></a>
-<span class="sourceLineNo">290</span><a name="line.290"></a>
-<span class="sourceLineNo">291</span>    //test fail bogus server move<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    try {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      rsGroupAdmin.moveServers(Sets.newHashSet(Address.fromString("foo:9999")),"foo");<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      fail("Bogus servers shouldn't have been successfully moved.");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    } catch(IOException ex) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      String exp = "Source RSGroup for server foo:9999 does not exist.";<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      String msg = "Expected '"+exp+"' in exception message: ";<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      assertTrue(msg+" "+ex.getMessage(), ex.getMessage().contains(exp));<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    }<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>    //test success case<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    LOG.info("moving servers "+barGroup.getServers()+" to group foo");<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    rsGroupAdmin.moveServers(barGroup.getServers(), fooGroup.getName());<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>    barGroup = rsGroupAdmin.getRSGroupInfo("bar");<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    fooGroup = rsGroupAdmin.getRSGroupInfo("foo");<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    assertEquals(0,barGroup.getServers().size());<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    assertEquals(3,fooGroup.getServers().size());<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>    LOG.info("moving servers "+fooGroup.getServers()+" to group default");<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    rsGroupAdmin.moveServers(fooGroup.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.311"></a>
+<span class="sourceLineNo">262</span>    rsGroupAdmin.removeRSGroup(appInfo.getName());<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rsGroupAdmin.moveServers(adminInfo.getServers(),<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        RSGroupInfo.DEFAULT_GROUP);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    rsGroupAdmin.removeRSGroup(adminInfo.getName());<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    Assert.assertEquals(rsGroupAdmin.listRSGroups().size(), initNumGroups);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
+<span class="sourceLineNo">268</span><a name="line.268"></a>
+<span class="sourceLineNo">269</span>  // return the real number of region servers, excluding the master embedded region server in 2.0+<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  public int getNumServers() throws IOException {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    ClusterStatus status =<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        admin.getClusterStatus(EnumSet.of(Option.MASTER, Option.LIVE_SERVERS));<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    ServerName master = status.getMaster();<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    int count = 0;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    for (ServerName sn : status.getServers()) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      if (!sn.equals(master)) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        count++;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    return count;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
+<span class="sourceLineNo">282</span><a name="line.282"></a>
+<span class="sourceLineNo">283</span>  @Test<a name="line.283"></a>
+<span class="sourceLineNo">284</span>  public void testMoveServers() throws Exception {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    //create groups and assign servers<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    addGroup("bar", 3);<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rsGroupAdmin.addRSGroup("foo");<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    RSGroupInfo barGroup = rsGroupAdmin.getRSGroupInfo("bar");<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    RSGroupInfo fooGroup = rsGroupAdmin.getRSGroupInfo("foo");<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    assertEquals(3, barGroup.getServers().size());<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    assertEquals(0, fooGroup.getServers().size());<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>    //test fail bogus server move<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    try {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      rsGroupAdmin.moveServers(Sets.newHashSet(Address.fromString("foo:9999")),"foo");<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      fail("Bogus servers shouldn't have been successfully moved.");<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    } catch(IOException ex) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      String exp = "Source RSGroup for server foo:9999 does not exist.";<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      String msg = "Expected '"+exp+"' in exception message: ";<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      assertTrue(msg+" "+ex.getMessage(), ex.getMessage().contains(exp));<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>    //test success case<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    LOG.info("moving servers "+barGroup.getServers()+" to group foo");<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    rsGroupAdmin.moveServers(barGroup.getServers(), fooGroup.getName());<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>    barGroup = rsGroupAdmin.getRSGroupInfo("bar");<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    fooGroup = rsGroupAdmin.getRSGroupInfo("foo");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    assertEquals(0,barGroup.getServers().size());<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    assertEquals(3,fooGroup.getServers().size());<a name="line.311"></a>
 <span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      @Override<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      public boolean evaluate() throws Exception {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        return getNumServers() ==<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers().size();<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    });<a name="line.319"></a>
-<span class="sourceLineNo">320</span><a name="line.320"></a>
-<span class="sourceLineNo">321</span>    fooGroup = rsGroupAdmin.getRSGroupInfo("foo");<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    assertEquals(0,fooGroup.getServers().size());<a name="line.322"></a>
+<span class="sourceLineNo">313</span>    LOG.info("moving servers "+fooGroup.getServers()+" to group default");<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    rsGroupAdmin.moveServers(fooGroup.getServers(), RSGroupInfo.DEFAULT_GROUP);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      @Override<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      public boolean evaluate() throws Exception {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        return getNumServers() ==<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        rsGroupAdmin.getRSGroupInfo(RSGroupInfo.DEFAULT_GROUP).getServers().size();<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    });<a name="line.322"></a>
 <span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>    //test group removal<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    LOG.info("Remove group "+barGroup.getName());<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    rsGroupAdmin.removeRSGroup(barGroup.getName());<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    Assert.assertEquals(null, rsGroupAdmin.getRSGroupInfo(barGroup.getName()));<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    LOG.info("Remove group "+fooGroup.getName());<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    rsGroupAdmin.removeRSGroup(fooGroup.getName());<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    Assert.assertEquals(null, rsGroupAdmin.getRSGroupInfo(fooGroup.getName()));<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span>  @Test<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public void testTableMoveTruncateAndDrop() throws Exception {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 2);<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>    TEST_UTIL.createMultiRegionTable(tableName, familyNameBytes, 5);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      @Override<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      public boolean evaluate() throws Exception {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        if (regions == null)<a name="line.344"></a>
-<span class="sourceLineNo">345</span>          return false;<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        return getTableRegionMap().get(tableName).size() &gt;= 5;<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    });<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>    RSGroupInfo tableGrp = rsGroupAdmin.getRSGroupInfoOfTable(tableName);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    assertTrue(tableGrp.getName().equals(RSGroupInfo.DEFAULT_GROUP));<a name="line.351"></a>
+<span class="sourceLineNo">324</span>    fooGroup = rsGroupAdmin.getRSGroupInfo("foo");<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    assertEquals(0,fooGroup.getServers().size());<a name="line.325"></a>
+<span class="sourceLineNo">326</span><a name="line.326"></a>
+<span class="sourceLineNo">327</span>    //test group removal<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    LOG.info("Remove group "+barGroup.getName());<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    rsGroupAdmin.removeRSGroup(barGroup.getName());<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    Assert.assertEquals(null, rsGroupAdmin.getRSGroupInfo(barGroup.getName()));<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    LOG.info("Remove group "+fooGroup.getName());<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    rsGroupAdmin.removeRSGroup(fooGroup.getName());<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    Assert.assertEquals(null, rsGroupAdmin.getRSGroupInfo(fooGroup.getName()));<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  }<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>  @Test<a name="line.336"></a>
+<span class="sourceLineNo">337</span>  public void testTableMoveTruncateAndDrop() throws Exception {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 2);<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>    TEST_UTIL.createMultiRegionTable(tableName, familyNameBytes, 5);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      @Override<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      public boolean evaluate() throws Exception {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.346"></a>
+<span class="sourceLineNo">347</span>        if (regions == null)<a name="line.347"></a>
+<span class="sourceLineNo">348</span>          return false;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        return getTableRegionMap().get(tableName).size() &gt;= 5;<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      }<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    });<a name="line.351"></a>
 <span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>    //change table's group<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    LOG.info("Moving table "+tableName+" to "+newGroup.getName());<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    rsGroupAdmin.moveTables(Sets.newHashSet(tableName), newGroup.getName());<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>    //verify group change<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    Assert.assertEquals(newGroup.getName(),<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        rsGroupAdmin.getRSGroupInfoOfTable(tableName).getName());<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      @Override<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      public boolean evaluate() throws Exception {<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        Map&lt;ServerName, List&lt;String&gt;&gt; serverMap = getTableServerRegionMap().get(tableName);<a name="line.364"></a>
-<span class="sourceLineNo">365</span>        int count = 0;<a name="line.365"></a>
-<span class="sourceLineNo">366</span>        if (serverMap != null) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>          for (ServerName rs : serverMap.keySet()) {<a name="line.367"></a>
-<span class="sourceLineNo">368</span>            if (newGroup.containsServer(rs.getAddress())) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>              count += serverMap.get(rs).size();<a name="line.369"></a>
-<span class="sourceLineNo">370</span>            }<a name="line.370"></a>
-<span class="sourceLineNo">371</span>          }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>        }<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        return count == 5;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    });<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    //test truncate<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    admin.disableTable(tableName);<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    admin.truncateTable(tableName, true);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    Assert.assertEquals(1, rsGroupAdmin.getRSGroupInfo(newGroup.getName()).getTables().size());<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    Assert.assertEquals(tableName, rsGroupAdmin.getRSGroupInfo(<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        newGroup.getName()).getTables().first());<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>    //verify removed table is removed from group<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    TEST_UTIL.deleteTable(tableName);<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    Assert.assertEquals(0, rsGroupAdmin.getRSGroupInfo(newGroup.getName()).getTables().size());<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>  @Test<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  public void testGroupBalance() throws Exception {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    LOG.info(name.getMethodName());<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 3);<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>    final TableName tableName = TableName.valueOf(tablePrefix+"_ns", name.getMethodName());<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    admin.createNamespace(<a name="line.396"></a>
-<span class="sourceLineNo">397</span>        NamespaceDescriptor.create(tableName.getNamespaceAsString())<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            .addConfiguration(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP, newGroupName).build());<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    final HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    desc.addFamily(new HColumnDescriptor("f"));<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    byte [] startKey = Bytes.toBytes("aaaaa");<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    byte [] endKey = Bytes.toBytes("zzzzz");<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    admin.createTable(desc, startKey, endKey, 6);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      @Override<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      public boolean evaluate() throws Exception {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        if (regions == null) {<a name="line.409"></a>
-<span class="sourceLineNo">410</span>          return false;<a name="line.410"></a>
-<span class="sourceLineNo">411</span>        }<a name="line.411"></a>
-<span class="sourceLineNo">412</span>        return regions.size() &gt;= 6;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      }<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    });<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>    //make assignment uneven, move all regions to one server<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    Map&lt;ServerName,List&lt;String&gt;&gt; assignMap =<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        getTableServerRegionMap().get(tableName);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    final ServerName first = assignMap.entrySet().iterator().next().getKey();<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    for(RegionInfo region: admin.getTableRegions(tableName)) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      if(!assignMap.get(first).contains(region.getRegionNameAsString())) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        admin.move(region.getEncodedNameAsBytes(), Bytes.toBytes(first.getServerName()));<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      @Override<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      public boolean evaluate() throws Exception {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        Map&lt;ServerName, List&lt;String&gt;&gt; map = getTableServerRegionMap().get(tableName);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        if (map == null) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>          return true;<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        }<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        List&lt;String&gt; regions = map.get(first);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        if (regions == null) {<a name="line.433"></a>
-<span class="sourceLineNo">434</span>          return true;<a name="line.434"></a>
-<span class="sourceLineNo">435</span>        }<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        return regions.size() &gt;= 6;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      }<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    });<a name="line.438"></a>
-<span class="sourceLineNo">439</span><a name="line.439"></a>
-<span class="sourceLineNo">440</span>    //balance the other group and make sure it doesn't affect the new group<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    admin.setBalancerRunning(true,true);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    rsGroupAdmin.balanceRSGroup(RSGroupInfo.DEFAULT_GROUP);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    assertEquals(6, getTableServerRegionMap().get(tableName).get(first).size());<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span>    //disable balance, balancer will not be run and return false<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    admin.setBalancerRunning(false,true);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    assertFalse(rsGroupAdmin.balanceRSGroup(newGroupName));<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    assertEquals(6, getTableServerRegionMap().get(tableName).get(first).size());<a name="line.448"></a>
-<span class="sourceLineNo">449</span><a name="line.449"></a>
-<span class="sourceLineNo">450</span>    //enable balance<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    admin.setBalancerRunning(true,true);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    rsGroupAdmin.balanceRSGroup(newGroupName);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      @Override<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      public boolean evaluate() throws Exception {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>        for (List&lt;String&gt; regions : getTableServerRegionMap().get(tableName).values()) {<a name="line.456"></a>
-<span class="sourceLineNo">457</span>          if (2 != regions.size()) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span>            return false;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>          }<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        }<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        return true;<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      }<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    });<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    admin.setBalancerRunning(false,true);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>  }<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>  @Test<a name="line.467"></a>
-<span class="sourceLineNo">468</span>  public void testRegionMove() throws Exception {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    final RSGroupInfo newGroup = addGroup(getGroupName(name.getMethodName()), 1);<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    // All the regions created below will be assigned to the default group.<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    TEST_UTIL.createMultiRegionTable(tableName, familyNameBytes, 6);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      @Override<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      public boolean evaluate() throws Exception {<a name="line.475"></a>
-<span class="sourceLineNo">476</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.476"></a>
-<span class="sourceLineNo">477</span>        if (regions == null)<a name="line.477"></a>
-<span class="sourceLineNo">478</span>          return false;<a name="line.478"></a>
-<span class="sourceLineNo">479</span>        return getTableRegionMap().get(tableName).size() &gt;= 6;<a name="line.479"></a>
-<span class="sourceLineNo">480</span>      }<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    });<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span>    //get target region to move<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    Map&lt;ServerName,List&lt;String&gt;&gt; assignMap =<a name="line.484"></a>
-<span class="sourceLineNo">485</span>        getTableServerRegionMap().get(tableName);<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    String targetRegion = null;<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    for(ServerName server : assignMap.keySet()) {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>      targetRegion = assignMap.get(server).size() &gt; 0 ? assignMap.get(server).get(0) : null;<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      if(targetRegion != null) {<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        break;<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      }<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    }<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    //get server which is not a member of new group<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    ServerName targetServer = null;<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    for (ServerName server : admin.getClusterStatus(EnumSet.of(Option.LIVE_SERVERS))<a name="line.495"></a>
-<span class="sourceLineNo">496</span>                                  .getServers()) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      if (!newGroup.containsServer(server.getAddress())) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        targetServer = server;<a name="line.498"></a>
-<span class="sourceLineNo">499</span>        break;<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      }<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>    final AdminProtos.AdminService.BlockingInterface targetRS =<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      ((ClusterConnection) admin.getConnection()).getAdmin(targetServer);<a name="line.504"></a>
+<span class="sourceLineNo">353</span>    RSGroupInfo tableGrp = rsGroupAdmin.getRSGroupInfoOfTable(tableName);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    assertTrue(tableGrp.getName().equals(RSGroupInfo.DEFAULT_GROUP));<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>    //change table's group<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    LOG.info("Moving table "+tableName+" to "+newGroup.getName());<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    rsGroupAdmin.moveTables(Sets.newHashSet(tableName), newGroup.getName());<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>    //verify group change<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    Assert.assertEquals(newGroup.getName(),<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        rsGroupAdmin.getRSGroupInfoOfTable(tableName).getName());<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      public boolean evaluate() throws Exception {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        Map&lt;ServerName, List&lt;String&gt;&gt; serverMap = getTableServerRegionMap().get(tableName);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        int count = 0;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        if (serverMap != null) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          for (ServerName rs : serverMap.keySet()) {<a name="line.370"></a>
+<span class="sourceLineNo">371</span>            if (newGroup.containsServer(rs.getAddress())) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>              count += serverMap.get(rs).size();<a name="line.372"></a>
+<span class="sourceLineNo">373</span>            }<a name="line.373"></a>
+<span class="sourceLineNo">374</span>          }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        }<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        return count == 5;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      }<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    });<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    //test truncate<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    admin.disableTable(tableName);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    admin.truncateTable(tableName, true);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    Assert.assertEquals(1, rsGroupAdmin.getRSGroupInfo(newGroup.getName()).getTables().size());<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    Assert.assertEquals(tableName, rsGroupAdmin.getRSGroupInfo(<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        newGroup.getName()).getTables().first());<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>    //verify removed table is removed from group<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    TEST_UTIL.deleteTable(tableName);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    Assert.assertEquals(0, rsGroupAdmin.getRSGroupInfo(newGroup.getName()).getTables().size());<a name="line.389"></a>
+<span class="sourceLineNo">390</span>  }<a name="line.390"></a>
+<span class="sourceLineNo">391</span><a name="line.391"></a>
+<span class="sourceLineNo">392</span>  @Test<a name="line.392"></a>
+<span class="sourceLineNo">393</span>  public void testGroupBalance() throws Exception {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    LOG.info(name.getMethodName());<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    String newGroupName = getGroupName(name.getMethodName());<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    final RSGroupInfo newGroup = addGroup(newGroupName, 3);<a name="line.396"></a>
+<span class="sourceLineNo">397</span><a name="line.397"></a>
+<span class="sourceLineNo">398</span>    final TableName tableName = TableName.valueOf(tablePrefix+"_ns", name.getMethodName());<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    admin.createNamespace(<a name="line.399"></a>
+<span class="sourceLineNo">400</span>        NamespaceDescriptor.create(tableName.getNamespaceAsString())<a name="line.400"></a>
+<span class="sourceLineNo">401</span>            .addConfiguration(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP, newGroupName).build());<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    final byte[] familyNameBytes = Bytes.toBytes("f");<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    final HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    desc.addFamily(new HColumnDescriptor("f"));<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    byte [] startKey = Bytes.toBytes("aaaaa");<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    byte [] endKey = Bytes.toBytes("zzzzz");<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    admin.createTable(desc, startKey, endKey, 6);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      @Override<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      public boolean evaluate() throws Exception {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>        List&lt;String&gt; regions = getTableRegionMap().get(tableName);<a name="line.411"></a>
+<span class="sourceLineNo">412</span>        if (regions == null) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>          return false;<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>        return regions.size() &gt;= 6;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    });<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>    //make assignment uneven, move all regions to one server<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    Map&lt;ServerName,List&lt;String&gt;&gt; assignMap =<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        getTableServerRegionMap().get(tableName);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    final ServerName first = assignMap.entrySet().iterator().next().getKey();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    for(RegionInfo region: admin.getTableRegions(tableName)) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      if(!assignMap.get(first).contains(region.getRegionNameAsString())) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>        admin.move(region.getEncodedNameAsBytes(), Bytes.toBytes(first.getServerName()));<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      }<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    TEST_UTIL.waitFor(WAIT_TIMEOUT, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      @Override<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      public boolean evaluate() throws Exception {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        Map&lt;ServerName, List&lt;String&gt;&gt; map = getTableServerRegionMap().get(tableName);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        if (map == null) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>          return true;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>        }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>        List&lt;String&gt; regions = map.get(first);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        if (regions == null) {<a name="line.436"></a>
+<span class="sourceLineNo">437</span>          return true;<a name="line.437"></a>
+<span class="sourceLineNo">438</span>        }<a name="line.438"></a>
+<span class="sourceLineNo">439</span>        return regions.size() &gt;= 6;<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    });<a name="line.441"></a>
+<span class="sourceLineNo">442</span><a name="line.442"></a>
+<span class="sourceLineNo">443</span>    //balance the other group and make sure it doesn't affect the new group<a name="line.443"></a>
+<span class="sourceLineNo">44

<TRUNCATED>

[25/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
index 3c517c6..5f7134b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
@@ -977,86 +977,82 @@
 <span class="sourceLineNo">969</span>    try (TraceScope scope = TraceUtil.createTrace(implClassName + ".append")) {<a name="line.969"></a>
 <span class="sourceLineNo">970</span>      FSWALEntry entry = new FSWALEntry(txid, key, edits, hri, inMemstore);<a name="line.970"></a>
 <span class="sourceLineNo">971</span>      entry.stampRegionSequenceId(we);<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (scope != null) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        ringBuffer.get(txid).load(entry, scope.getSpan());<a name="line.973"></a>
-<span class="sourceLineNo">974</span>      } else {<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        ringBuffer.get(txid).load(entry, null);<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    } finally {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      ringBuffer.publish(txid);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    return txid;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>  }<a name="line.981"></a>
-<span class="sourceLineNo">982</span><a name="line.982"></a>
-<span class="sourceLineNo">983</span>  @Override<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public String toString() {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    return implClassName + " " + walFilePrefix + ":" + walFileSuffix + "(num "<a name="line.985"></a>
-<span class="sourceLineNo">986</span>        + filenum + ")";<a name="line.986"></a>
-<span class="sourceLineNo">987</span>  }<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>  /**<a name="line.989"></a>
-<span class="sourceLineNo">990</span>   * if the given {@code path} is being written currently, then return its length.<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * &lt;p&gt;<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * This is used by replication to prevent replicating unacked log entries. See<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * https://issues.apache.org/jira/browse/HBASE-14004 for more details.<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   */<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  @Override<a name="line.995"></a>
-<span class="sourceLineNo">996</span>  public OptionalLong getLogFileSizeIfBeingWritten(Path path) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    rollWriterLock.lock();<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    try {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      Path currentPath = getOldPath();<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      if (path.equals(currentPath)) {<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>        W writer = this.writer;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>        return writer != null ? OptionalLong.of(writer.getLength()) : OptionalLong.empty();<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      } else {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        return OptionalLong.empty();<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      }<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    } finally {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      rollWriterLock.unlock();<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>    }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>  }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span><a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>  /**<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * NOTE: This append, at a time that is usually after this call returns, starts an mvcc<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   * transaction by calling 'begin' wherein which we assign this update a sequenceid. At assignment<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>   * time, we stamp all the passed in Cells inside WALEdit with their sequenceId. You must<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>   * 'complete' the transaction this mvcc transaction by calling<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>   * MultiVersionConcurrencyControl#complete(...) or a variant otherwise mvcc will get stuck. Do it<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   * in the finally of a try/finally block within which this append lives and any subsequent<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>   * operations like sync or update of memstore, etc. Get the WriteEntry to pass mvcc out of the<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>   * passed in WALKey &lt;code&gt;walKey&lt;/code&gt; parameter. Be warned that the WriteEntry is not<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * immediately available on return from this method. It WILL be available subsequent to a sync of<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   * this append; otherwise, you will just have to wait on the WriteEntry to get filled in.<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>   */<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>  @Override<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  public abstract long append(RegionInfo info, WALKey key, WALEdit edits, boolean inMemstore)<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>      throws IOException;<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span><a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  protected abstract void doAppend(W writer, FSWALEntry entry) throws IOException;<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span><a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>  protected abstract W createWriterInstance(Path path) throws IOException,<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>      CommonFSUtils.StreamLacksCapabilityException;<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>  /**<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   * @return old wal file size<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   */<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>  protected abstract long doReplaceWriter(Path oldPath, Path newPath, W nextWriter)<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      throws IOException;<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  protected abstract void doShutdown() throws IOException;<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span><a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  /**<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>   * This method gets the pipeline for the current WAL.<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>   */<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>  @VisibleForTesting<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>  abstract DatanodeInfo[] getPipeline();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span><a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>  /**<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>   * This method gets the datanode replication count for the current WAL.<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>   */<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  @VisibleForTesting<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>  abstract int getLogReplication();<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>}<a name="line.1051"></a>
+<span class="sourceLineNo">972</span>      ringBuffer.get(txid).load(entry);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>    } finally {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>      ringBuffer.publish(txid);<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    }<a name="line.975"></a>
+<span class="sourceLineNo">976</span>    return txid;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>  }<a name="line.977"></a>
+<span class="sourceLineNo">978</span><a name="line.978"></a>
+<span class="sourceLineNo">979</span>  @Override<a name="line.979"></a>
+<span class="sourceLineNo">980</span>  public String toString() {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>    return implClassName + " " + walFilePrefix + ":" + walFileSuffix + "(num "<a name="line.981"></a>
+<span class="sourceLineNo">982</span>        + filenum + ")";<a name="line.982"></a>
+<span class="sourceLineNo">983</span>  }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>  /**<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * if the given {@code path} is being written currently, then return its length.<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * &lt;p&gt;<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * This is used by replication to prevent replicating unacked log entries. See<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * https://issues.apache.org/jira/browse/HBASE-14004 for more details.<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   */<a name="line.990"></a>
+<span class="sourceLineNo">991</span>  @Override<a name="line.991"></a>
+<span class="sourceLineNo">992</span>  public OptionalLong getLogFileSizeIfBeingWritten(Path path) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    rollWriterLock.lock();<a name="line.993"></a>
+<span class="sourceLineNo">994</span>    try {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>      Path currentPath = getOldPath();<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      if (path.equals(currentPath)) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>        W writer = this.writer;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        return writer != null ? OptionalLong.of(writer.getLength()) : OptionalLong.empty();<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      } else {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>        return OptionalLong.empty();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>      }<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    } finally {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      rollWriterLock.unlock();<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>  }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span><a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>  /**<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * NOTE: This append, at a time that is usually after this call returns, starts an mvcc<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   * transaction by calling 'begin' wherein which we assign this update a sequenceid. At assignment<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>   * time, we stamp all the passed in Cells inside WALEdit with their sequenceId. You must<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>   * 'complete' the transaction this mvcc transaction by calling<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>   * MultiVersionConcurrencyControl#complete(...) or a variant otherwise mvcc will get stuck. Do it<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>   * in the finally of a try/finally block within which this append lives and any subsequent<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>   * operations like sync or update of memstore, etc. Get the WriteEntry to pass mvcc out of the<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>   * passed in WALKey &lt;code&gt;walKey&lt;/code&gt; parameter. Be warned that the WriteEntry is not<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>   * immediately available on return from this method. It WILL be available subsequent to a sync of<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>   * this append; otherwise, you will just have to wait on the WriteEntry to get filled in.<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>   */<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  @Override<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>  public abstract long append(RegionInfo info, WALKey key, WALEdit edits, boolean inMemstore)<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      throws IOException;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span><a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>  protected abstract void doAppend(W writer, FSWALEntry entry) throws IOException;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span><a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>  protected abstract W createWriterInstance(Path path) throws IOException,<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      CommonFSUtils.StreamLacksCapabilityException;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  /**<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>   * @return old wal file size<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  protected abstract long doReplaceWriter(Path oldPath, Path newPath, W nextWriter)<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      throws IOException;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span><a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>  protected abstract void doShutdown() throws IOException;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span><a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>  /**<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>   * This method gets the pipeline for the current WAL.<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>   */<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>  @VisibleForTesting<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  abstract DatanodeInfo[] getPipeline();<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span><a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  /**<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>   * This method gets the datanode replication count for the current WAL.<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>   */<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>  @VisibleForTesting<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>  abstract int getLogReplication();<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>}<a name="line.1047"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
index 3c517c6..5f7134b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
@@ -977,86 +977,82 @@
 <span class="sourceLineNo">969</span>    try (TraceScope scope = TraceUtil.createTrace(implClassName + ".append")) {<a name="line.969"></a>
 <span class="sourceLineNo">970</span>      FSWALEntry entry = new FSWALEntry(txid, key, edits, hri, inMemstore);<a name="line.970"></a>
 <span class="sourceLineNo">971</span>      entry.stampRegionSequenceId(we);<a name="line.971"></a>
-<span class="sourceLineNo">972</span>      if (scope != null) {<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        ringBuffer.get(txid).load(entry, scope.getSpan());<a name="line.973"></a>
-<span class="sourceLineNo">974</span>      } else {<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        ringBuffer.get(txid).load(entry, null);<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      }<a name="line.976"></a>
-<span class="sourceLineNo">977</span>    } finally {<a name="line.977"></a>
-<span class="sourceLineNo">978</span>      ringBuffer.publish(txid);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>    }<a name="line.979"></a>
-<span class="sourceLineNo">980</span>    return txid;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>  }<a name="line.981"></a>
-<span class="sourceLineNo">982</span><a name="line.982"></a>
-<span class="sourceLineNo">983</span>  @Override<a name="line.983"></a>
-<span class="sourceLineNo">984</span>  public String toString() {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>    return implClassName + " " + walFilePrefix + ":" + walFileSuffix + "(num "<a name="line.985"></a>
-<span class="sourceLineNo">986</span>        + filenum + ")";<a name="line.986"></a>
-<span class="sourceLineNo">987</span>  }<a name="line.987"></a>
-<span class="sourceLineNo">988</span><a name="line.988"></a>
-<span class="sourceLineNo">989</span>  /**<a name="line.989"></a>
-<span class="sourceLineNo">990</span>   * if the given {@code path} is being written currently, then return its length.<a name="line.990"></a>
-<span class="sourceLineNo">991</span>   * &lt;p&gt;<a name="line.991"></a>
-<span class="sourceLineNo">992</span>   * This is used by replication to prevent replicating unacked log entries. See<a name="line.992"></a>
-<span class="sourceLineNo">993</span>   * https://issues.apache.org/jira/browse/HBASE-14004 for more details.<a name="line.993"></a>
-<span class="sourceLineNo">994</span>   */<a name="line.994"></a>
-<span class="sourceLineNo">995</span>  @Override<a name="line.995"></a>
-<span class="sourceLineNo">996</span>  public OptionalLong getLogFileSizeIfBeingWritten(Path path) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    rollWriterLock.lock();<a name="line.997"></a>
-<span class="sourceLineNo">998</span>    try {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      Path currentPath = getOldPath();<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      if (path.equals(currentPath)) {<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>        W writer = this.writer;<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>        return writer != null ? OptionalLong.of(writer.getLength()) : OptionalLong.empty();<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>      } else {<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>        return OptionalLong.empty();<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>      }<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>    } finally {<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      rollWriterLock.unlock();<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>    }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>  }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span><a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>  /**<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * NOTE: This append, at a time that is usually after this call returns, starts an mvcc<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   * transaction by calling 'begin' wherein which we assign this update a sequenceid. At assignment<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>   * time, we stamp all the passed in Cells inside WALEdit with their sequenceId. You must<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>   * 'complete' the transaction this mvcc transaction by calling<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>   * MultiVersionConcurrencyControl#complete(...) or a variant otherwise mvcc will get stuck. Do it<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   * in the finally of a try/finally block within which this append lives and any subsequent<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>   * operations like sync or update of memstore, etc. Get the WriteEntry to pass mvcc out of the<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>   * passed in WALKey &lt;code&gt;walKey&lt;/code&gt; parameter. Be warned that the WriteEntry is not<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * immediately available on return from this method. It WILL be available subsequent to a sync of<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   * this append; otherwise, you will just have to wait on the WriteEntry to get filled in.<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>   */<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>  @Override<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  public abstract long append(RegionInfo info, WALKey key, WALEdit edits, boolean inMemstore)<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>      throws IOException;<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span><a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>  protected abstract void doAppend(W writer, FSWALEntry entry) throws IOException;<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span><a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>  protected abstract W createWriterInstance(Path path) throws IOException,<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>      CommonFSUtils.StreamLacksCapabilityException;<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>  /**<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>   * @return old wal file size<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>   */<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>  protected abstract long doReplaceWriter(Path oldPath, Path newPath, W nextWriter)<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>      throws IOException;<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span><a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>  protected abstract void doShutdown() throws IOException;<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span><a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>  /**<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>   * This method gets the pipeline for the current WAL.<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>   */<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>  @VisibleForTesting<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>  abstract DatanodeInfo[] getPipeline();<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span><a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>  /**<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>   * This method gets the datanode replication count for the current WAL.<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>   */<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>  @VisibleForTesting<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>  abstract int getLogReplication();<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>}<a name="line.1051"></a>
+<span class="sourceLineNo">972</span>      ringBuffer.get(txid).load(entry);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>    } finally {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>      ringBuffer.publish(txid);<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    }<a name="line.975"></a>
+<span class="sourceLineNo">976</span>    return txid;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>  }<a name="line.977"></a>
+<span class="sourceLineNo">978</span><a name="line.978"></a>
+<span class="sourceLineNo">979</span>  @Override<a name="line.979"></a>
+<span class="sourceLineNo">980</span>  public String toString() {<a name="line.980"></a>
+<span class="sourceLineNo">981</span>    return implClassName + " " + walFilePrefix + ":" + walFileSuffix + "(num "<a name="line.981"></a>
+<span class="sourceLineNo">982</span>        + filenum + ")";<a name="line.982"></a>
+<span class="sourceLineNo">983</span>  }<a name="line.983"></a>
+<span class="sourceLineNo">984</span><a name="line.984"></a>
+<span class="sourceLineNo">985</span>  /**<a name="line.985"></a>
+<span class="sourceLineNo">986</span>   * if the given {@code path} is being written currently, then return its length.<a name="line.986"></a>
+<span class="sourceLineNo">987</span>   * &lt;p&gt;<a name="line.987"></a>
+<span class="sourceLineNo">988</span>   * This is used by replication to prevent replicating unacked log entries. See<a name="line.988"></a>
+<span class="sourceLineNo">989</span>   * https://issues.apache.org/jira/browse/HBASE-14004 for more details.<a name="line.989"></a>
+<span class="sourceLineNo">990</span>   */<a name="line.990"></a>
+<span class="sourceLineNo">991</span>  @Override<a name="line.991"></a>
+<span class="sourceLineNo">992</span>  public OptionalLong getLogFileSizeIfBeingWritten(Path path) {<a name="line.992"></a>
+<span class="sourceLineNo">993</span>    rollWriterLock.lock();<a name="line.993"></a>
+<span class="sourceLineNo">994</span>    try {<a name="line.994"></a>
+<span class="sourceLineNo">995</span>      Path currentPath = getOldPath();<a name="line.995"></a>
+<span class="sourceLineNo">996</span>      if (path.equals(currentPath)) {<a name="line.996"></a>
+<span class="sourceLineNo">997</span>        W writer = this.writer;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        return writer != null ? OptionalLong.of(writer.getLength()) : OptionalLong.empty();<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      } else {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>        return OptionalLong.empty();<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>      }<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>    } finally {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      rollWriterLock.unlock();<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>  }<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span><a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>  /**<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>   * NOTE: This append, at a time that is usually after this call returns, starts an mvcc<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   * transaction by calling 'begin' wherein which we assign this update a sequenceid. At assignment<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>   * time, we stamp all the passed in Cells inside WALEdit with their sequenceId. You must<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>   * 'complete' the transaction this mvcc transaction by calling<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>   * MultiVersionConcurrencyControl#complete(...) or a variant otherwise mvcc will get stuck. Do it<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>   * in the finally of a try/finally block within which this append lives and any subsequent<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>   * operations like sync or update of memstore, etc. Get the WriteEntry to pass mvcc out of the<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>   * passed in WALKey &lt;code&gt;walKey&lt;/code&gt; parameter. Be warned that the WriteEntry is not<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>   * immediately available on return from this method. It WILL be available subsequent to a sync of<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>   * this append; otherwise, you will just have to wait on the WriteEntry to get filled in.<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>   */<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  @Override<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>  public abstract long append(RegionInfo info, WALKey key, WALEdit edits, boolean inMemstore)<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      throws IOException;<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span><a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>  protected abstract void doAppend(W writer, FSWALEntry entry) throws IOException;<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span><a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>  protected abstract W createWriterInstance(Path path) throws IOException,<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      CommonFSUtils.StreamLacksCapabilityException;<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span><a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>  /**<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>   * @return old wal file size<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  protected abstract long doReplaceWriter(Path oldPath, Path newPath, W nextWriter)<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      throws IOException;<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span><a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>  protected abstract void doShutdown() throws IOException;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span><a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>  /**<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>   * This method gets the pipeline for the current WAL.<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>   */<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>  @VisibleForTesting<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>  abstract DatanodeInfo[] getPipeline();<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span><a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>  /**<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>   * This method gets the datanode replication count for the current WAL.<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>   */<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>  @VisibleForTesting<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>  abstract int getLogReplication();<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>}<a name="line.1047"></a>
 
 
 


[33/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/security/access/CoprocessorWhitelistMasterObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/CoprocessorWhitelistMasterObserver.html b/devapidocs/org/apache/hadoop/hbase/security/access/CoprocessorWhitelistMasterObserver.html
index 30936b3..ba47086 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/CoprocessorWhitelistMasterObserver.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/CoprocessorWhitelistMasterObserver.html
@@ -255,7 +255,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.u
 til.List-">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.ht
 ml#postCompletedCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCompletedCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Mas
 terObserver.html#postCompletedMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postCompletedModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableN
 ame-">postCompletedTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDeleteNamespace</a>, <a href="../../../../../../org/apache/
 hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.St
 ring-">postEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hb
 ase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">postGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">postGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor
 /MasterObserver.html#postListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href=".
 ./../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postModifyTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.h
 base.ServerName-">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterO
 bserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-
 org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolea
 n-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverC
 ontext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a>, <a hre
 f="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocess
 or/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hb
 ase.coprocessor.ObserverContext-">preClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-j
 ava.util.List-boolean-">preDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDis
 ableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a>, <a href="../../../../../../org/a
 pache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserve
 r.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescrip
 tors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.Obs
 erverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoo
 p.hbase.client.TableDescriptor-">preModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a>, <a href="../../../../../../or
 g/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lan
 g.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetTa
 bleQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase
 /coprocessor/MasterObserver.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegi
 onAfterMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.ap
 ache.hadoop.hbase.TableName-">preTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.u
 til.List-">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.ht
 ml#postCompletedCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCompletedCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Mas
 terObserver.html#postCompletedMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postCompletedModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableN
 ame-">postCompletedTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDeleteNamespace</a>, <a href="../../../../../../org/apache/
 hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.St
 ring-">postEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hb
 ase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">postGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">postGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor
 /MasterObserver.html#postListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href=".
 ./../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postModifyTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.h
 base.ServerName-">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterO
 bserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-jav
 a.lang.String-">postRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">pos
 tSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quot
 as.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../..
 /org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.
 coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hado
 op.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-"
 >preCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.
 hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/h
 base/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocess
 or/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a>, <a href="..
 /../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.copro
 cessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a>, <a href="../..
 /../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a>, <a href="../../../../../../org/apache/
 hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.la
 ng.String-">preRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQ
 uotaSettings-">preSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.
 hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegionAfterMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlu
 sh</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index 6a709a8..d776b93 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -191,9 +191,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 </ul>
 </li>
 </ul>


[26/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
index 9fa61e7..a074e6e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
@@ -1409,267 +1409,291 @@
 <span class="sourceLineNo">1401</span>    });<a name="line.1401"></a>
 <span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
 <span class="sourceLineNo">1403</span><a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  public void preAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1404"></a>
+<span class="sourceLineNo">1404</span>  public void preRemoveServers(final Set&lt;Address&gt; servers)<a name="line.1404"></a>
 <span class="sourceLineNo">1405</span>      throws IOException {<a name="line.1405"></a>
 <span class="sourceLineNo">1406</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1406"></a>
 <span class="sourceLineNo">1407</span>      @Override<a name="line.1407"></a>
 <span class="sourceLineNo">1408</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>        observer.preAddReplicationPeer(this, peerId, peerConfig);<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      }<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    });<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  public void postAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>      throws IOException {<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>      @Override<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        observer.postAddReplicationPeer(this, peerId, peerConfig);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>      }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    });<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  }<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span><a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>  public void preRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      @Override<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>        observer.preRemoveReplicationPeer(this, peerId);<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>      }<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>    });<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>  }<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span><a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public void postRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      @Override<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>        observer.postRemoveReplicationPeer(this, peerId);<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>      }<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    });<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>  }<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span><a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public void preEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      @Override<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>        observer.preEnableReplicationPeer(this, peerId);<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      }<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    });<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  public void postEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>      @Override<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        observer.postEnableReplicationPeer(this, peerId);<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      }<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>    });<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span><a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>  public void preDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>      @Override<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>        observer.preDisableReplicationPeer(this, peerId);<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>      }<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    });<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  }<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span><a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  public void postDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>      @Override<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>        observer.postDisableReplicationPeer(this, peerId);<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>      }<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    });<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span><a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  public void preGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>      @Override<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>        observer.preGetReplicationPeerConfig(this, peerId);<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      }<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>    });<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  }<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span><a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>  public void postGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>      @Override<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>        observer.postGetReplicationPeerConfig(this, peerId);<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      }<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    });<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>  }<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span><a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>  public void preUpdateReplicationPeerConfig(final String peerId,<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>      @Override<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>        observer.preUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>      }<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>    });<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>  }<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span><a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>  public void postUpdateReplicationPeerConfig(final String peerId,<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>      @Override<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>        observer.postUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      }<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>    });<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>  }<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span><a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>  public void preListReplicationPeers(final String regex) throws IOException {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>      @Override<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>        observer.preListReplicationPeers(this, regex);<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      }<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    });<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  public void postListReplicationPeers(final String regex) throws IOException {<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      @Override<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>        observer.postListReplicationPeers(this, regex);<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      }<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    });<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span><a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>  public void preRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>      LockType type, String description) throws IOException {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>      @Override<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>        observer.preRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      }<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    });<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  public void postRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      LockType type, String description) throws IOException {<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      @Override<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>        observer.postRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      }<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    });<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span><a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>  public void preLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>      @Override<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>        observer.preLockHeartbeat(this, proc.getTableName(), proc.getDescription());<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      }<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>    });<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  }<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span><a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>  public void postLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      @Override<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>        observer.postLockHeartbeat(this);<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      }<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    });<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>  }<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span><a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>  public void preGetClusterStatus() throws IOException {<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>      @Override<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        observer.preGetClusterStatus(this);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>      }<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>    });<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>  }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  public void postGetClusterStatus(ClusterStatus status) throws IOException {<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      @Override<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>        observer.postGetClusterStatus(this, status);<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      }<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>    });<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>  }<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span><a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>  public void preClearDeadServers() throws IOException {<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>      @Override<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>        observer.preClearDeadServers(this);<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>      }<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    });<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>  }<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span><a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>  public void postClearDeadServers(List&lt;ServerName&gt; servers,<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>      List&lt;ServerName&gt; notClearedServers) throws IOException {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>      @Override<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>        observer.postClearDeadServers(this, servers, notClearedServers);<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      }<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>    });<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>  }<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span><a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>  public void preDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>      @Override<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>        observer.preDecommissionRegionServers(this, servers, offload);<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>      }<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    });<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span><a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>  public void postDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      @Override<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>        observer.postDecommissionRegionServers(this, servers, offload);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>      }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>    });<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>  }<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span><a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  public void preListDecommissionedRegionServers() throws IOException {<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>      @Override<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>        observer.preListDecommissionedRegionServers(this);<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      }<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    });<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>  }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span><a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>  public void postListDecommissionedRegionServers() throws IOException {<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      @Override<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>        observer.postListDecommissionedRegionServers(this);<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      }<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>    });<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>  }<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span><a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>  public void preRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>      throws IOException {<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>      @Override<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        observer.preRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      }<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    });<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>  }<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span><a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  public void postRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>      throws IOException {<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>      @Override<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>        observer.postRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>      }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>    });<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>  }<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>}<a name="line.1664"></a>
+<span class="sourceLineNo">1409</span>        if(((MasterEnvironment)getEnvironment()).supportGroupCPs) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>          observer.preRemoveServers(this, servers);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>        }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      }<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>    });<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span><a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  public void postRemoveServers(final Set&lt;Address&gt; servers)<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      throws IOException {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      @Override<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>        if(((MasterEnvironment)getEnvironment()).supportGroupCPs) {<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>          observer.postRemoveServers(this, servers);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>        }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>      }<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>    });<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>  }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span><a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>  public void preAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>      throws IOException {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>      @Override<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>        observer.preAddReplicationPeer(this, peerId, peerConfig);<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>      }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>    });<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span><a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>  public void postAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>      throws IOException {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>      @Override<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>        observer.postAddReplicationPeer(this, peerId, peerConfig);<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      }<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>    });<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>  }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span><a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  public void preRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>      @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>        observer.preRemoveReplicationPeer(this, peerId);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>      }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>    });<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span><a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>  public void postRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>      @Override<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>        observer.postRemoveReplicationPeer(this, peerId);<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>      }<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>    });<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>  }<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span><a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>  public void preEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>      @Override<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>        observer.preEnableReplicationPeer(this, peerId);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      }<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>    });<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>  }<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span><a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>  public void postEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>      @Override<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>        observer.postEnableReplicationPeer(this, peerId);<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>      }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>    });<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span><a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>  public void preDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>      @Override<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>        observer.preDisableReplicationPeer(this, peerId);<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>      }<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>    });<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  }<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span><a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public void postDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>      @Override<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>        observer.postDisableReplicationPeer(this, peerId);<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>      }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>    });<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span><a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>  public void preGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>      @Override<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>        observer.preGetReplicationPeerConfig(this, peerId);<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>      }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>    });<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>  }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span><a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>  public void postGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>      @Override<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>        observer.postGetReplicationPeerConfig(this, peerId);<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>      }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>    });<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>  }<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span><a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>  public void preUpdateReplicationPeerConfig(final String peerId,<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>      @Override<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>        observer.preUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>    });<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>  }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span><a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>  public void postUpdateReplicationPeerConfig(final String peerId,<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>      @Override<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>        observer.postUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>      }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>    });<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span><a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  public void preListReplicationPeers(final String regex) throws IOException {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>      @Override<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>        observer.preListReplicationPeers(this, regex);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>      }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>    });<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>  public void postListReplicationPeers(final String regex) throws IOException {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>      @Override<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>        observer.postListReplicationPeers(this, regex);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>    });<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>  }<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span><a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>  public void preRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      LockType type, String description) throws IOException {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>      @Override<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>        observer.preRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    });<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>  }<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span><a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>  public void postRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      LockType type, String description) throws IOException {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      @Override<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>        observer.postRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    });<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>  }<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span><a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>  public void preLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      @Override<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>        observer.preLockHeartbeat(this, proc.getTableName(), proc.getDescription());<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>      }<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>    });<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>  }<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span><a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>  public void postLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>      @Override<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        observer.postLockHeartbeat(this);<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>    });<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>  }<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span><a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>  public void preGetClusterStatus() throws IOException {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>      @Override<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>        observer.preGetClusterStatus(this);<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>      }<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>    });<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>  }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>  public void postGetClusterStatus(ClusterStatus status) throws IOException {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      @Override<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        observer.postGetClusterStatus(this, status);<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>      }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>    });<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>  }<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span><a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>  public void preClearDeadServers() throws IOException {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>      @Override<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        observer.preClearDeadServers(this);<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>      }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    });<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>  }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span><a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>  public void postClearDeadServers(List&lt;ServerName&gt; servers,<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>      List&lt;ServerName&gt; notClearedServers) throws IOException {<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>      @Override<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>        observer.postClearDeadServers(this, servers, notClearedServers);<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>      }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>    });<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>  }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span><a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>  public void preDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      @Override<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>        observer.preDecommissionRegionServers(this, servers, offload);<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>      }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>    });<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>  }<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span><a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>  public void postDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>      @Override<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>        observer.postDecommissionRegionServers(this, servers, offload);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>      }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>    });<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>  }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span><a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>  public void preListDecommissionedRegionServers() throws IOException {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>      @Override<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>        observer.preListDecommissionedRegionServers(this);<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>      }<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>    });<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>  }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>  public void postListDecommissionedRegionServers() throws IOException {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>      @Override<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>        observer.postListDecommissionedRegionServers(this);<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>      }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    });<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>  }<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span><a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>  public void preRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>      throws IOException {<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>      @Override<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>        observer.preRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>      }<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    });<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span><a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>  public void postRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>      throws IOException {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>      @Override<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>        observer.postRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>      }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    });<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>  }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>}<a name="line.1688"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.Visitor.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BulkLoadListener.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatchOperation.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatchOperation.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
index 6ed75c9..3edfbef 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
@@ -7197,8 +7197,8 @@
 <span class="sourceLineNo">7189</span>        stats.setHeapOccupancy((int)(occupancy * 100));<a name="line.7189"></a>
 <span class="sourceLineNo">7190</span>      }<a name="line.7190"></a>
 <span class="sourceLineNo">7191</span>    }<a name="line.7191"></a>
-<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int)rsServices.getCompactionPressure()*100 &gt; 100 ? 100 :<a name="line.7192"></a>
-<span class="sourceLineNo">7193</span>                (int)rsServices.getCompactionPressure()*100);<a name="line.7193"></a>
+<span class="sourceLineNo">7192</span>    stats.setCompactionPressure((int) (rsServices.getCompactionPressure() * 100 &gt; 100 ? 100<a name="line.7192"></a>
+<span class="sourceLineNo">7193</span>        : rsServices.getCompactionPressure() * 100));<a name="line.7193"></a>
 <span class="sourceLineNo">7194</span>    return stats.build();<a name="line.7194"></a>
 <span class="sourceLineNo">7195</span>  }<a name="line.7195"></a>
 <span class="sourceLineNo">7196</span><a name="line.7196"></a>


[29/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html
index 9fa61e7..a074e6e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironment.html
@@ -1409,267 +1409,291 @@
 <span class="sourceLineNo">1401</span>    });<a name="line.1401"></a>
 <span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
 <span class="sourceLineNo">1403</span><a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  public void preAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1404"></a>
+<span class="sourceLineNo">1404</span>  public void preRemoveServers(final Set&lt;Address&gt; servers)<a name="line.1404"></a>
 <span class="sourceLineNo">1405</span>      throws IOException {<a name="line.1405"></a>
 <span class="sourceLineNo">1406</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1406"></a>
 <span class="sourceLineNo">1407</span>      @Override<a name="line.1407"></a>
 <span class="sourceLineNo">1408</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>        observer.preAddReplicationPeer(this, peerId, peerConfig);<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      }<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    });<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  public void postAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>      throws IOException {<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>      @Override<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        observer.postAddReplicationPeer(this, peerId, peerConfig);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>      }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    });<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  }<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span><a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>  public void preRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      @Override<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>        observer.preRemoveReplicationPeer(this, peerId);<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>      }<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>    });<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>  }<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span><a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public void postRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      @Override<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>        observer.postRemoveReplicationPeer(this, peerId);<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>      }<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    });<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>  }<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span><a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public void preEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      @Override<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>        observer.preEnableReplicationPeer(this, peerId);<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      }<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    });<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  public void postEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>      @Override<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        observer.postEnableReplicationPeer(this, peerId);<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      }<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>    });<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span><a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>  public void preDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>      @Override<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>        observer.preDisableReplicationPeer(this, peerId);<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>      }<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    });<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  }<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span><a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  public void postDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>      @Override<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>        observer.postDisableReplicationPeer(this, peerId);<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>      }<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    });<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span><a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  public void preGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>      @Override<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>        observer.preGetReplicationPeerConfig(this, peerId);<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      }<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>    });<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  }<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span><a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>  public void postGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>      @Override<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>        observer.postGetReplicationPeerConfig(this, peerId);<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      }<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    });<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>  }<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span><a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>  public void preUpdateReplicationPeerConfig(final String peerId,<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>      @Override<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>        observer.preUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>      }<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>    });<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>  }<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span><a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>  public void postUpdateReplicationPeerConfig(final String peerId,<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>      @Override<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>        observer.postUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      }<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>    });<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>  }<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span><a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>  public void preListReplicationPeers(final String regex) throws IOException {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>      @Override<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>        observer.preListReplicationPeers(this, regex);<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      }<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    });<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  public void postListReplicationPeers(final String regex) throws IOException {<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      @Override<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>        observer.postListReplicationPeers(this, regex);<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      }<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    });<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span><a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>  public void preRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>      LockType type, String description) throws IOException {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>      @Override<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>        observer.preRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      }<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    });<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  public void postRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      LockType type, String description) throws IOException {<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      @Override<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>        observer.postRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      }<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    });<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span><a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>  public void preLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>      @Override<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>        observer.preLockHeartbeat(this, proc.getTableName(), proc.getDescription());<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      }<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>    });<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  }<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span><a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>  public void postLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      @Override<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>        observer.postLockHeartbeat(this);<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      }<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    });<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>  }<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span><a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>  public void preGetClusterStatus() throws IOException {<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>      @Override<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        observer.preGetClusterStatus(this);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>      }<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>    });<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>  }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  public void postGetClusterStatus(ClusterStatus status) throws IOException {<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      @Override<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>        observer.postGetClusterStatus(this, status);<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      }<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>    });<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>  }<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span><a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>  public void preClearDeadServers() throws IOException {<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>      @Override<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>        observer.preClearDeadServers(this);<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>      }<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    });<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>  }<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span><a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>  public void postClearDeadServers(List&lt;ServerName&gt; servers,<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>      List&lt;ServerName&gt; notClearedServers) throws IOException {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>      @Override<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>        observer.postClearDeadServers(this, servers, notClearedServers);<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      }<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>    });<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>  }<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span><a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>  public void preDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>      @Override<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>        observer.preDecommissionRegionServers(this, servers, offload);<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>      }<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    });<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span><a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>  public void postDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      @Override<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>        observer.postDecommissionRegionServers(this, servers, offload);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>      }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>    });<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>  }<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span><a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  public void preListDecommissionedRegionServers() throws IOException {<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>      @Override<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>        observer.preListDecommissionedRegionServers(this);<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      }<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    });<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>  }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span><a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>  public void postListDecommissionedRegionServers() throws IOException {<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      @Override<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>        observer.postListDecommissionedRegionServers(this);<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      }<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>    });<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>  }<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span><a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>  public void preRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>      throws IOException {<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>      @Override<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        observer.preRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      }<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    });<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>  }<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span><a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  public void postRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>      throws IOException {<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>      @Override<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>        observer.postRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>      }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>    });<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>  }<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>}<a name="line.1664"></a>
+<span class="sourceLineNo">1409</span>        if(((MasterEnvironment)getEnvironment()).supportGroupCPs) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>          observer.preRemoveServers(this, servers);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>        }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      }<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>    });<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span><a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  public void postRemoveServers(final Set&lt;Address&gt; servers)<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      throws IOException {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      @Override<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>        if(((MasterEnvironment)getEnvironment()).supportGroupCPs) {<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>          observer.postRemoveServers(this, servers);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>        }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>      }<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>    });<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>  }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span><a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>  public void preAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>      throws IOException {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>      @Override<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>        observer.preAddReplicationPeer(this, peerId, peerConfig);<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>      }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>    });<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span><a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>  public void postAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>      throws IOException {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>      @Override<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>        observer.postAddReplicationPeer(this, peerId, peerConfig);<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      }<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>    });<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>  }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span><a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  public void preRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>      @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>        observer.preRemoveReplicationPeer(this, peerId);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>      }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>    });<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span><a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>  public void postRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>      @Override<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>        observer.postRemoveReplicationPeer(this, peerId);<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>      }<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>    });<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>  }<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span><a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>  public void preEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>      @Override<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>        observer.preEnableReplicationPeer(this, peerId);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      }<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>    });<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>  }<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span><a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>  public void postEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>      @Override<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>        observer.postEnableReplicationPeer(this, peerId);<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>      }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>    });<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span><a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>  public void preDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>      @Override<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>        observer.preDisableReplicationPeer(this, peerId);<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>      }<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>    });<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  }<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span><a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public void postDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>      @Override<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>        observer.postDisableReplicationPeer(this, peerId);<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>      }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>    });<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span><a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>  public void preGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>      @Override<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>        observer.preGetReplicationPeerConfig(this, peerId);<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>      }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>    });<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>  }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span><a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>  public void postGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>      @Override<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>        observer.postGetReplicationPeerConfig(this, peerId);<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>      }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>    });<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>  }<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span><a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>  public void preUpdateReplicationPeerConfig(final String peerId,<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>      @Override<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>        observer.preUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>    });<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>  }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span><a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>  public void postUpdateReplicationPeerConfig(final String peerId,<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>      @Override<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>        observer.postUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>      }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>    });<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span><a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  public void preListReplicationPeers(final String regex) throws IOException {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>      @Override<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>        observer.preListReplicationPeers(this, regex);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>      }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>    });<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>  public void postListReplicationPeers(final String regex) throws IOException {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>      @Override<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>        observer.postListReplicationPeers(this, regex);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>    });<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>  }<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span><a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>  public void preRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      LockType type, String description) throws IOException {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>      @Override<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>        observer.preRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    });<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>  }<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span><a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>  public void postRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      LockType type, String description) throws IOException {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      @Override<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>        observer.postRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    });<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>  }<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span><a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>  public void preLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      @Override<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>        observer.preLockHeartbeat(this, proc.getTableName(), proc.getDescription());<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>      }<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>    });<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>  }<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span><a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>  public void postLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>      @Override<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        observer.postLockHeartbeat(this);<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>    });<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>  }<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span><a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>  public void preGetClusterStatus() throws IOException {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>      @Override<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>        observer.preGetClusterStatus(this);<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>      }<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>    });<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>  }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>  public void postGetClusterStatus(ClusterStatus status) throws IOException {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      @Override<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        observer.postGetClusterStatus(this, status);<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>      }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>    });<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>  }<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span><a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>  public void preClearDeadServers() throws IOException {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>      @Override<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        observer.preClearDeadServers(this);<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>      }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    });<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>  }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span><a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>  public void postClearDeadServers(List&lt;ServerName&gt; servers,<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>      List&lt;ServerName&gt; notClearedServers) throws IOException {<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>      @Override<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>        observer.postClearDeadServers(this, servers, notClearedServers);<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>      }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>    });<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>  }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span><a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>  public void preDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      @Override<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>        observer.preDecommissionRegionServers(this, servers, offload);<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>      }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>    });<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>  }<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span><a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>  public void postDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>      @Override<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>        observer.postDecommissionRegionServers(this, servers, offload);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>      }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>    });<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>  }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span><a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>  public void preListDecommissionedRegionServers() throws IOException {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>      @Override<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>        observer.preListDecommissionedRegionServers(this);<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>      }<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>    });<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>  }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>  public void postListDecommissionedRegionServers() throws IOException {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>      @Override<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>        observer.postListDecommissionedRegionServers(this);<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>      }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    });<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>  }<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span><a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>  public void preRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>      throws IOException {<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>      @Override<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>        observer.preRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>      }<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    });<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span><a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>  public void postRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>      throws IOException {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>      @Override<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>        observer.postRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>      }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    });<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>  }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>}<a name="line.1688"></a>
 
 
 


[07/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html
index 33ce961..6e909b1 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html
@@ -55,755 +55,752 @@
 <span class="sourceLineNo">047</span><a name="line.47"></a>
 <span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.48"></a>
 <span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.coprocessor.CoreCoprocessor;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.coprocessor.HasRegionServerServices;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.regionserver.StorefileRefresherChore;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.junit.AfterClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.junit.Assert;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.junit.BeforeClass;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.junit.Test;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.junit.experimental.categories.Category;<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>@Category({MediumTests.class, ClientTests.class})<a name="line.71"></a>
-<span class="sourceLineNo">072</span>public class TestReplicaWithCluster {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final Log LOG = LogFactory.getLog(TestReplicaWithCluster.class);<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final int NB_SERVERS = 3;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final byte[] row = TestReplicaWithCluster.class.getName().getBytes();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final HBaseTestingUtility HTU = new HBaseTestingUtility();<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  // second minicluster used in testing of replication<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static HBaseTestingUtility HTU2;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private static final byte[] f = HConstants.CATALOG_FAMILY;<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private final static int REFRESH_PERIOD = 1000;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private final static int META_SCAN_TIMEOUT_IN_MILLISEC = 200;<a name="line.84"></a>
-<span class="sourceLineNo">085</span><a name="line.85"></a>
-<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * This copro is used to synchronize the tests.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public static class SlowMeCopro implements RegionCoprocessor, RegionObserver {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    static final AtomicLong sleepTime = new AtomicLong(0);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    static final AtomicReference&lt;CountDownLatch&gt; cdl = new AtomicReference&lt;&gt;(new CountDownLatch(0));<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>    public SlowMeCopro() {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>    @Override<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return Optional.of(this);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>    @Override<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.102"></a>
-<span class="sourceLineNo">103</span>                         final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() == 0) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        CountDownLatch latch = cdl.get();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        try {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>          if (sleepTime.get() &gt; 0) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>            LOG.info("Sleeping for " + sleepTime.get() + " ms");<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            Thread.sleep(sleepTime.get());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          } else if (latch.getCount() &gt; 0) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>            LOG.info("Waiting for the counterCountDownLatch");<a name="line.112"></a>
-<span class="sourceLineNo">113</span>            latch.await(2, TimeUnit.MINUTES); // To help the tests to finish.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>            if (latch.getCount() &gt; 0) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>              throw new RuntimeException("Can't wait more");<a name="line.115"></a>
-<span class="sourceLineNo">116</span>            }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>          }<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        } catch (InterruptedException e1) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          LOG.error(e1);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      } else {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        LOG.info("We're not the primary replicas.");<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  /**<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * This copro is used to simulate region server down exception for Get and Scan<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  @CoreCoprocessor<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  public static class RegionServerStoppedCopro implements RegionCoprocessor, RegionObserver {<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>    public RegionServerStoppedCopro() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return Optional.of(this);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>      // Fail for the primary replica and replica 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            + " not running");<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      } else {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        LOG.info("We're replica region " + replicaId);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        final Scan scan) throws IOException {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      // Fail for the primary replica and replica 1<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.164"></a>
-<span class="sourceLineNo">165</span>            + " not running");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      } else {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        LOG.info("We're replica region " + replicaId);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      }<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  /**<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   * This copro is used to slow down the primary meta region scan a bit<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static class RegionServerHostingPrimayMetaRegionSlowOrStopCopro<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      implements RegionCoprocessor, RegionObserver {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    static boolean slowDownPrimaryMetaScan = false;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    static boolean throwException = false;<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    @Override<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return Optional.of(this);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>    @Override<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>      // Fail for the primary replica, but not for meta<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      if (throwException) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        if (!e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>          LOG.info("Get, throw Region Server Stopped Exceptoin for region " + e.getEnvironment()<a name="line.194"></a>
-<span class="sourceLineNo">195</span>              .getRegion().getRegionInfo());<a name="line.195"></a>
-<span class="sourceLineNo">196</span>          throw new RegionServerStoppedException("Server " +<a name="line.196"></a>
-<span class="sourceLineNo">197</span>            ((HasRegionServerServices)e.getEnvironment()).getRegionServerServices().getServerName()<a name="line.197"></a>
-<span class="sourceLineNo">198</span>                  + " not running");<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        }<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      } else {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        LOG.info("Get, We're replica region " + replicaId);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      }<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>    @Override<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        final Scan scan) throws IOException {<a name="line.207"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.regionserver.StorefileRefresherChore;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.junit.AfterClass;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.junit.Assert;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.junit.BeforeClass;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.Test;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.experimental.categories.Category;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>@Category({MediumTests.class, ClientTests.class})<a name="line.70"></a>
+<span class="sourceLineNo">071</span>public class TestReplicaWithCluster {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private static final Log LOG = LogFactory.getLog(TestReplicaWithCluster.class);<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private static final int NB_SERVERS = 3;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final byte[] row = TestReplicaWithCluster.class.getName().getBytes();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private static final HBaseTestingUtility HTU = new HBaseTestingUtility();<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  // second minicluster used in testing of replication<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static HBaseTestingUtility HTU2;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final byte[] f = HConstants.CATALOG_FAMILY;<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private final static int REFRESH_PERIOD = 1000;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private final static int META_SCAN_TIMEOUT_IN_MILLISEC = 200;<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * This copro is used to synchronize the tests.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public static class SlowMeCopro implements RegionCoprocessor, RegionObserver {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    static final AtomicLong sleepTime = new AtomicLong(0);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    static final AtomicReference&lt;CountDownLatch&gt; cdl = new AtomicReference&lt;&gt;(new CountDownLatch(0));<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    public SlowMeCopro() {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>    @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      return Optional.of(this);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>    @Override<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                         final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() == 0) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        CountDownLatch latch = cdl.get();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        try {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>          if (sleepTime.get() &gt; 0) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>            LOG.info("Sleeping for " + sleepTime.get() + " ms");<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            Thread.sleep(sleepTime.get());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          } else if (latch.getCount() &gt; 0) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>            LOG.info("Waiting for the counterCountDownLatch");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>            latch.await(2, TimeUnit.MINUTES); // To help the tests to finish.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>            if (latch.getCount() &gt; 0) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>              throw new RuntimeException("Can't wait more");<a name="line.114"></a>
+<span class="sourceLineNo">115</span>            }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>          }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        } catch (InterruptedException e1) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>          LOG.error(e1);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      } else {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        LOG.info("We're not the primary replicas.");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /**<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * This copro is used to simulate region server down exception for Get and Scan<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  @CoreCoprocessor<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  public static class RegionServerStoppedCopro implements RegionCoprocessor, RegionObserver {<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>    public RegionServerStoppedCopro() {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    @Override<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      return Optional.of(this);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>    @Override<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>      // Fail for the primary replica and replica 1<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.149"></a>
+<span class="sourceLineNo">150</span>            + " not running");<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      } else {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        LOG.info("We're replica region " + replicaId);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        final Scan scan) throws IOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      // Fail for the primary replica and replica 1<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            + " not running");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      } else {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        LOG.info("We're replica region " + replicaId);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * This copro is used to slow down the primary meta region scan a bit<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public static class RegionServerHostingPrimayMetaRegionSlowOrStopCopro<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      implements RegionCoprocessor, RegionObserver {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    static boolean slowDownPrimaryMetaScan = false;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    static boolean throwException = false;<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      return Optional.of(this);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>    @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>      // Fail for the primary replica, but not for meta<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      if (throwException) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        if (!e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          LOG.info("Get, throw Region Server Stopped Exceptoin for region " + e.getEnvironment()<a name="line.193"></a>
+<span class="sourceLineNo">194</span>              .getRegion().getRegionInfo());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                  + " not running");<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      } else {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        LOG.info("Get, We're replica region " + replicaId);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        final Scan scan) throws IOException {<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.207"></a>
 <span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>      // Slow down with the primary meta region scan<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      if (e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        if (slowDownPrimaryMetaScan) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          LOG.info("Scan with primary meta region, slow down a bit");<a name="line.214"></a>
-<span class="sourceLineNo">215</span>          try {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>            Thread.sleep(META_SCAN_TIMEOUT_IN_MILLISEC - 50);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>          } catch (InterruptedException ie) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>            // Ingore<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>        // Fail for the primary replica<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        if (throwException) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>          LOG.info("Scan, throw Region Server Stopped Exceptoin for replica " + e.getEnvironment()<a name="line.224"></a>
-<span class="sourceLineNo">225</span>              .getRegion().getRegionInfo());<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>          throw new RegionServerStoppedException("Server " +<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            ((HasRegionServerServices)e.getEnvironment()).getRegionServerServices().getServerName()<a name="line.228"></a>
-<span class="sourceLineNo">229</span>               + " not running");<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        } else {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>          LOG.info("Scan, We're replica region " + replicaId);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      } else {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        LOG.info("Scan, We're replica region " + replicaId);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    }<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  }<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  @BeforeClass<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  public static void beforeClass() throws Exception {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    // enable store file refreshing<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    HTU.getConfiguration().setInt(StorefileRefresherChore.REGIONSERVER_STOREFILE_REFRESH_PERIOD,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        REFRESH_PERIOD);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>    HTU.getConfiguration().setFloat("hbase.regionserver.logroll.multiplier", 0.0001f);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    HTU.getConfiguration().setInt("replication.source.size.capacity", 10240);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    HTU.getConfiguration().setLong("replication.source.sleepforretries", 100);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    HTU.getConfiguration().setInt("hbase.regionserver.maxlogs", 2);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    HTU.getConfiguration().setLong("hbase.master.logcleaner.ttl", 10);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry", 1);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // Wait for primary call longer so make sure that it will get exception from the primary call<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.get", 1000000);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.scan", 1000000);<a name="line.255"></a>
+<span class="sourceLineNo">209</span>      // Slow down with the primary meta region scan<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      if (e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        if (slowDownPrimaryMetaScan) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>          LOG.info("Scan with primary meta region, slow down a bit");<a name="line.212"></a>
+<span class="sourceLineNo">213</span>          try {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>            Thread.sleep(META_SCAN_TIMEOUT_IN_MILLISEC - 50);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>          } catch (InterruptedException ie) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>            // Ingore<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>        // Fail for the primary replica<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        if (throwException) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          LOG.info("Scan, throw Region Server Stopped Exceptoin for replica " + e.getEnvironment()<a name="line.222"></a>
+<span class="sourceLineNo">223</span>              .getRegion().getRegionInfo());<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>          throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.225"></a>
+<span class="sourceLineNo">226</span>               + " not running");<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        } else {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          LOG.info("Scan, We're replica region " + replicaId);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      } else {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        LOG.info("Scan, We're replica region " + replicaId);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>  @BeforeClass<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  public static void beforeClass() throws Exception {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    // enable store file refreshing<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    HTU.getConfiguration().setInt(StorefileRefresherChore.REGIONSERVER_STOREFILE_REFRESH_PERIOD,<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        REFRESH_PERIOD);<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>    HTU.getConfiguration().setFloat("hbase.regionserver.logroll.multiplier", 0.0001f);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    HTU.getConfiguration().setInt("replication.source.size.capacity", 10240);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    HTU.getConfiguration().setLong("replication.source.sleepforretries", 100);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    HTU.getConfiguration().setInt("hbase.regionserver.maxlogs", 2);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    HTU.getConfiguration().setLong("hbase.master.logcleaner.ttl", 10);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry", 1);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    // Wait for primary call longer so make sure that it will get exception from the primary call<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.get", 1000000);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.scan", 1000000);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    // Retry less so it can fail faster<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    HTU.getConfiguration().setInt("hbase.client.retries.number", 1);<a name="line.255"></a>
 <span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    // Retry less so it can fail faster<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    HTU.getConfiguration().setInt("hbase.client.retries.number", 1);<a name="line.258"></a>
+<span class="sourceLineNo">257</span>    // Enable meta replica at server side<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    HTU.getConfiguration().setInt("hbase.meta.replica.count", 2);<a name="line.258"></a>
 <span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    // Enable meta replica at server side<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    HTU.getConfiguration().setInt("hbase.meta.replica.count", 2);<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    // Make sure master does not host system tables.<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    HTU.getConfiguration().set("hbase.balancer.tablesOnMaster", "none");<a name="line.261"></a>
 <span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    // Make sure master does not host system tables.<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    HTU.getConfiguration().set("hbase.balancer.tablesOnMaster", "none");<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    // Set system coprocessor so it can be applied to meta regions<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    HTU.getConfiguration().set("hbase.coprocessor.region.classes",<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        RegionServerHostingPrimayMetaRegionSlowOrStopCopro.class.getName());<a name="line.268"></a>
+<span class="sourceLineNo">263</span>    // Set system coprocessor so it can be applied to meta regions<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    HTU.getConfiguration().set("hbase.coprocessor.region.classes",<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        RegionServerHostingPrimayMetaRegionSlowOrStopCopro.class.getName());<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    HTU.getConfiguration().setInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        META_SCAN_TIMEOUT_IN_MILLISEC * 1000);<a name="line.268"></a>
 <span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>    HTU.getConfiguration().setInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        META_SCAN_TIMEOUT_IN_MILLISEC * 1000);<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    HTU.startMiniCluster(NB_SERVERS);<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    HTU.getHBaseCluster().startMaster();<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  }<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>  @AfterClass<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public static void afterClass() throws Exception {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    if (HTU2 != null)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      HTU2.shutdownMiniCluster();<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    HTU.shutdownMiniCluster();<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  @Test (timeout=30000)<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public void testCreateDeleteTable() throws IOException {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    // Create table then get the single region for our new table.<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testCreateDeleteTable");<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    Put p = new Put(row);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    p.addColumn(f, row, row);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    table.put(p);<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>    Get g = new Get(row);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    Result r = table.get(g);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Assert.assertFalse(r.isStale());<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    try {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      // But if we ask for stale we will get it<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      g = new Get(row);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      r = table.get(g);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      Assert.assertTrue(r.isStale());<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      SlowMeCopro.cdl.get().countDown();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    } finally {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      SlowMeCopro.cdl.get().countDown();<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      SlowMeCopro.sleepTime.set(0);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    }<a name="line.311"></a>
-<span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    HTU.deleteTable(hdt.getTableName());<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>  @Test (timeout=120000)<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  public void testChangeTable() throws Exception {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    TableDescriptor td = TableDescriptorBuilder.newBuilder(TableName.valueOf("testChangeTable"))<a name="line.319"></a>
-<span class="sourceLineNo">320</span>            .setRegionReplication(NB_SERVERS)<a name="line.320"></a>
-<span class="sourceLineNo">321</span>            .addCoprocessor(SlowMeCopro.class.getName())<a name="line.321"></a>
-<span class="sourceLineNo">322</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(f))<a name="line.322"></a>
-<span class="sourceLineNo">323</span>            .build();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    HTU.getAdmin().createTable(td);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    Table table = HTU.getConnection().getTable(td.getTableName());<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    // basic test: it should work.<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    Put p = new Put(row);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    p.addColumn(f, row, row);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    table.put(p);<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>    Get g = new Get(row);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    Result r = table.get(g);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    Assert.assertFalse(r.isStale());<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>    // Add a CF, it should work.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    TableDescriptor bHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    td = TableDescriptorBuilder.newBuilder(td)<a name="line.337"></a>
-<span class="sourceLineNo">338</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(row))<a name="line.338"></a>
-<span class="sourceLineNo">339</span>            .build();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    HTU.getAdmin().disableTable(td.getTableName());<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    HTU.getAdmin().modifyTable(td);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    HTU.getAdmin().enableTable(td.getTableName());<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    TableDescriptor nHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>    p = new Put(row);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    p.addColumn(row, row, row);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    table.put(p);<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    g = new Get(row);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    r = table.get(g);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    Assert.assertFalse(r.isStale());<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    try {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      g = new Get(row);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      r = table.get(g);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      Assert.assertTrue(r.isStale());<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    } finally {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      SlowMeCopro.cdl.get().countDown();<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      SlowMeCopro.sleepTime.set(0);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Admin admin = HTU.getAdmin();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    nHdt =admin.getDescriptor(td.getTableName());<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>    admin.disableTable(td.getTableName());<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    admin.deleteTable(td.getTableName());<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    admin.close();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  @SuppressWarnings("deprecation")<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  @Test (timeout=300000)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  public void testReplicaAndReplication() throws Exception {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testReplicaAndReplication");<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>    HColumnDescriptor fam = new HColumnDescriptor(row);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    hdt.addFamily(fam);<a name="line.384"></a>
+<span class="sourceLineNo">270</span>    HTU.startMiniCluster(NB_SERVERS);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    HTU.getHBaseCluster().startMaster();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>  @AfterClass<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  public static void afterClass() throws Exception {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    if (HTU2 != null)<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      HTU2.shutdownMiniCluster();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    HTU.shutdownMiniCluster();<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  @Test (timeout=30000)<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public void testCreateDeleteTable() throws IOException {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    // Create table then get the single region for our new table.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testCreateDeleteTable");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    Put p = new Put(row);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    p.addColumn(f, row, row);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    table.put(p);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    Get g = new Get(row);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    Result r = table.get(g);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    Assert.assertFalse(r.isStale());<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>    try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      // But if we ask for stale we will get it<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      g = new Get(row);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      r = table.get(g);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      Assert.assertTrue(r.isStale());<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      SlowMeCopro.cdl.get().countDown();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    } finally {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      SlowMeCopro.cdl.get().countDown();<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      SlowMeCopro.sleepTime.set(0);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    HTU.deleteTable(hdt.getTableName());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>  }<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>  @Test (timeout=120000)<a name="line.314"></a>
+<span class="sourceLineNo">315</span>  public void testChangeTable() throws Exception {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    TableDescriptor td = TableDescriptorBuilder.newBuilder(TableName.valueOf("testChangeTable"))<a name="line.316"></a>
+<span class="sourceLineNo">317</span>            .setRegionReplication(NB_SERVERS)<a name="line.317"></a>
+<span class="sourceLineNo">318</span>            .addCoprocessor(SlowMeCopro.class.getName())<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(f))<a name="line.319"></a>
+<span class="sourceLineNo">320</span>            .build();<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    HTU.getAdmin().createTable(td);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    Table table = HTU.getConnection().getTable(td.getTableName());<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    // basic test: it should work.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    Put p = new Put(row);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    p.addColumn(f, row, row);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    table.put(p);<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>    Get g = new Get(row);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    Result r = table.get(g);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    Assert.assertFalse(r.isStale());<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>    // Add a CF, it should work.<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    TableDescriptor bHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    td = TableDescriptorBuilder.newBuilder(td)<a name="line.334"></a>
+<span class="sourceLineNo">335</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(row))<a name="line.335"></a>
+<span class="sourceLineNo">336</span>            .build();<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    HTU.getAdmin().disableTable(td.getTableName());<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    HTU.getAdmin().modifyTable(td);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    HTU.getAdmin().enableTable(td.getTableName());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    TableDescriptor nHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>    p = new Put(row);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    p.addColumn(row, row, row);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    table.put(p);<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>    g = new Get(row);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    r = table.get(g);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    Assert.assertFalse(r.isStale());<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      g = new Get(row);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      r = table.get(g);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      Assert.assertTrue(r.isStale());<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    } finally {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      SlowMeCopro.cdl.get().countDown();<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      SlowMeCopro.sleepTime.set(0);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    Admin admin = HTU.getAdmin();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    nHdt =admin.getDescriptor(td.getTableName());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span>    admin.disableTable(td.getTableName());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    admin.deleteTable(td.getTableName());<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    admin.close();<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  @SuppressWarnings("deprecation")<a name="line.373"></a>
+<span class="sourceLineNo">374</span>  @Test (timeout=300000)<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  public void testReplicaAndReplication() throws Exception {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testReplicaAndReplication");<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>    HColumnDescriptor fam = new HColumnDescriptor(row);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    hdt.addFamily(fam);<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    HTU.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.384"></a>
 <span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    HTU.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>    Configuration conf2 = HBaseConfiguration.create(HTU.getConfiguration());<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    conf2.set(HConstants.HBASE_CLIENT_INSTANCE_ID, String.valueOf(-1));<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    MiniZooKeeperCluster miniZK = HTU.getZkCluster();<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>    HTU2 = new HBaseTestingUtility(conf2);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    HTU2.setZkCluster(miniZK);<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    HTU2.startMiniCluster(NB_SERVERS);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    LOG.info("Setup second Zk");<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    HTU2.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());<a name="line.400"></a>
-<span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    rpc.setClusterKey(HTU2.getClusterKey());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    admin.addPeer("2", rpc, null);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    admin.close();<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    Put p = new Put(row);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    p.addColumn(row, row, row);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    final Table table = HTU.getConnection().getTable(hdt.getTableName());<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    table.put(p);<a name="line.410"></a>
+<span class="sourceLineNo">386</span>    Configuration conf2 = HBaseConfiguration.create(HTU.getConfiguration());<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    conf2.set(HConstants.HBASE_CLIENT_INSTANCE_ID, String.valueOf(-1));<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    MiniZooKeeperCluster miniZK = HTU.getZkCluster();<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>    HTU2 = new HBaseTestingUtility(conf2);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    HTU2.setZkCluster(miniZK);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    HTU2.startMiniCluster(NB_SERVERS);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    LOG.info("Setup second Zk");<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    HTU2.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>    ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    rpc.setClusterKey(HTU2.getClusterKey());<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    admin.addPeer("2", rpc, null);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    admin.close();<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>    Put p = new Put(row);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    p.addColumn(row, row, row);<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    final Table table = HTU.getConnection().getTable(hdt.getTableName());<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    table.put(p);<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>    HTU.getAdmin().flush(table.getName());<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    LOG.info("Put &amp; flush done on the first cluster. Now doing a get on the same cluster.");<a name="line.410"></a>
 <span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    HTU.getAdmin().flush(table.getName());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    LOG.info("Put &amp; flush done on the first cluster. Now doing a get on the same cluster.");<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      @Override public boolean evaluate() throws Exception {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        try {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          Get g = new Get(row);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          Result r = table.get(g);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          Assert.assertTrue(r.isStale());<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          return !r.isEmpty();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        } finally {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          SlowMeCopro.cdl.get().countDown();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          SlowMeCopro.sleepTime.set(0);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    });<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    table.close();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    LOG.info("stale get on the first cluster done. Now for the second.");<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>    final Table table2 = HTU.getConnection().getTable(hdt.getTableName());<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      @Override public boolean evaluate() throws Exception {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        try {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          Get g = new Get(row);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          Result r = table2.get(g);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          Assert.assertTrue(r.isStale());<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          return !r.isEmpty();<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        } finally {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          SlowMeCopro.cdl.get().countDown();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          SlowMeCopro.sleepTime.set(0);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>        }<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    });<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    table2.close();<a name="line.449"></a>
+<span class="sourceLineNo">412</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      @Override public boolean evaluate() throws Exception {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        try {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          Get g = new Get(row);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>          Result r = table.get(g);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          Assert.assertTrue(r.isStale());<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          return !r.isEmpty();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        } finally {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>          SlowMeCopro.cdl.get().countDown();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          SlowMeCopro.sleepTime.set(0);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    });<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    table.close();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    LOG.info("stale get on the first cluster done. Now for the second.");<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>    final Table table2 = HTU.getConnection().getTable(hdt.getTableName());<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      @Override public boolean evaluate() throws Exception {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        try {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.434"></a>
+<span class="sourceLineNo">435</span>          Get g = new Get(row);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>          Result r = table2.get(g);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>          Assert.assertTrue(r.isStale());<a name="line.438"></a>
+<span class="sourceLineNo">439</span>          return !r.isEmpty();<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        } finally {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>          SlowMeCopro.cdl.get().countDown();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>          SlowMeCopro.sleepTime.set(0);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        }<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    });<a name="line.445"></a>
+<span class="sourceLineNo">446</span>    table2.close();<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    HTU.deleteTable(hdt.getTableName());<a name="line.449"></a>
 <span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    HTU.deleteTable(hdt.getTableName());<a name="line.452"></a>
+<span class="sourceLineNo">451</span>    HTU2.getAdmin().disableTable(hdt.getTableName());<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    HTU2.deleteTable(hdt.getTableName());<a name="line.452"></a>
 <span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>    HTU2.getAdmin().disableTable(hdt.getTableName());<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    HTU2.deleteTable(hdt.getTableName());<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    // We shutdown HTU2 minicluster later, in afterClass(), as shutting down<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    // the minicluster has negative impact of deleting all HConnections in JVM.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  @Test (timeout=30000)<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  public void testBulkLoad() throws IOException {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    // Create table then get the single region for our new table.<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    LOG.debug("Creating test table");<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testBulkLoad");<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.468"></a>
-<span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // create hfiles to load.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    LOG.debug("Creating test data");<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    Path dir = HTU.getDataTestDirOnTestFS("testBulkLoad");<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    final int numRows = 10;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    final byte[] qual = Bytes.toBytes("qual");<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    final byte[] val  = Bytes.toBytes("val");<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    final List&lt;Pair&lt;byte[], String&gt;&gt; famPaths = new ArrayList&lt;&gt;();<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    for (HColumnDescriptor col : hdt.getColumnFamilies()) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      Path hfile = new Path(dir, col.getNameAsString());<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      TestHRegionServerBulkLoad.createHFile(HTU.getTestFileSystem(), hfile, col.getName(),<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        qual, val, numRows);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      famPaths.add(new Pair&lt;&gt;(col.getName(), hfile.toString()));<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    // bulk load HFiles<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    LOG.debug("Loading test data");<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    final ClusterConnection conn = (ClusterConnection) HTU.getAdmin().getConnection();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    table = conn.getTable(hdt.getTableName());<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    final String bulkToken =<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        new SecureBulkLoadClient(HTU.getConfiguration(), table).prepareBulkLoad(conn);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    ClientServiceCallable&lt;Void&gt; callable = new ClientServiceCallable&lt;Void&gt;(conn,<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        hdt.getTableName(), TestHRegionServerBulkLoad.rowkey(0),<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        new RpcControllerFactory(HTU.getConfiguration()).newController(), HConstants.PRIORITY_UNSET) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      @Override<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      protected Void rpcCall() throws Exception {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>        LOG.debug("Going to connect to server " + getLocation() + " for row "<a name="line.495"></a>
-<span class="sourceLineNo">496</span>            + Bytes.toStringBinary(getRow()));<a name="line.496"></a>
-<span class="sourceLineNo">497</span>        SecureBulkLoadClient secureClient = null;<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        byte[] regionName = getLocation().getRegionInfo().getRegionName();<a name="line.498"></a>
-<span class="sourceLineNo">499</span>        try (Table table = conn.getTable(getTableName())) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>          secureClient = new SecureBulkLoadClient(HTU.getConfiguration(), table);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          secureClient.secureBulkLoadHFiles(getStub(), famPaths, regionName,<a name="line.501"></a>
-<span class="sourceLineNo">502</span>              true, null, bulkToken);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        }<a name="line.503"></a>
-<span class="sourceLineNo">504</span>        return null;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    };<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    RpcRetryingCallerFactory factory = new RpcRetryingCallerFactory(HTU.getConfiguration());<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    RpcRetryingCaller&lt;Void&gt; caller = factory.newCaller();<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    caller.callWithRetries(callable, 10000);<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // verify we can read them from the primary<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    LOG.debug("Verifying data load");<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    for (int i = 0; i &lt; numRows; i++) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      byte[] row = TestHRegionServerBulkLoad.rowkey(i);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      Get g = new Get(row);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      Result r = table.get(g);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      Assert.assertFalse(r.isStale());<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    // verify we can read them from the replica<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    LOG.debug("Verifying replica queries");<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    try {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      for (int i = 0; i &lt; numRows; i++) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        byte[] row = TestHRegionServerBulkLoad.rowkey(i);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>        Get g = new Get(row);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        g.setConsistency(Consistency.TIMELINE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        Result r = table.get(g);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        Assert.assertTrue(r.isStale());<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      SlowMeCopro.cdl.get().countDown();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    } finally {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      SlowMeCopro.cdl.get().countDown();<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      SlowMeCopro.sleepTime.set(0);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    HTU.deleteTable(hdt.getTableName());<a name="line.538"

<TRUNCATED>

[04/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html
index 33ce961..6e909b1 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html
@@ -55,755 +55,752 @@
 <span class="sourceLineNo">047</span><a name="line.47"></a>
 <span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.replication.ReplicationAdmin;<a name="line.48"></a>
 <span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.coprocessor.CoreCoprocessor;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.coprocessor.HasRegionServerServices;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.regionserver.StorefileRefresherChore;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.junit.AfterClass;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.junit.Assert;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.junit.BeforeClass;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.junit.Test;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.junit.experimental.categories.Category;<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>@Category({MediumTests.class, ClientTests.class})<a name="line.71"></a>
-<span class="sourceLineNo">072</span>public class TestReplicaWithCluster {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private static final Log LOG = LogFactory.getLog(TestReplicaWithCluster.class);<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final int NB_SERVERS = 3;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final byte[] row = TestReplicaWithCluster.class.getName().getBytes();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  private static final HBaseTestingUtility HTU = new HBaseTestingUtility();<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  // second minicluster used in testing of replication<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private static HBaseTestingUtility HTU2;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  private static final byte[] f = HConstants.CATALOG_FAMILY;<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  private final static int REFRESH_PERIOD = 1000;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  private final static int META_SCAN_TIMEOUT_IN_MILLISEC = 200;<a name="line.84"></a>
-<span class="sourceLineNo">085</span><a name="line.85"></a>
-<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * This copro is used to synchronize the tests.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public static class SlowMeCopro implements RegionCoprocessor, RegionObserver {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    static final AtomicLong sleepTime = new AtomicLong(0);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    static final AtomicReference&lt;CountDownLatch&gt; cdl = new AtomicReference&lt;&gt;(new CountDownLatch(0));<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>    public SlowMeCopro() {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>    @Override<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      return Optional.of(this);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>    @Override<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.102"></a>
-<span class="sourceLineNo">103</span>                         final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.103"></a>
-<span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() == 0) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>        CountDownLatch latch = cdl.get();<a name="line.106"></a>
-<span class="sourceLineNo">107</span>        try {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>          if (sleepTime.get() &gt; 0) {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>            LOG.info("Sleeping for " + sleepTime.get() + " ms");<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            Thread.sleep(sleepTime.get());<a name="line.110"></a>
-<span class="sourceLineNo">111</span>          } else if (latch.getCount() &gt; 0) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>            LOG.info("Waiting for the counterCountDownLatch");<a name="line.112"></a>
-<span class="sourceLineNo">113</span>            latch.await(2, TimeUnit.MINUTES); // To help the tests to finish.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>            if (latch.getCount() &gt; 0) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>              throw new RuntimeException("Can't wait more");<a name="line.115"></a>
-<span class="sourceLineNo">116</span>            }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>          }<a name="line.117"></a>
-<span class="sourceLineNo">118</span>        } catch (InterruptedException e1) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          LOG.error(e1);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      } else {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>        LOG.info("We're not the primary replicas.");<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      }<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  /**<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * This copro is used to simulate region server down exception for Get and Scan<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  @CoreCoprocessor<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  public static class RegionServerStoppedCopro implements RegionCoprocessor, RegionObserver {<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>    public RegionServerStoppedCopro() {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      return Optional.of(this);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>    @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>      // Fail for the primary replica and replica 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            + " not running");<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      } else {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        LOG.info("We're replica region " + replicaId);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        final Scan scan) throws IOException {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      // Fail for the primary replica and replica 1<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.164"></a>
-<span class="sourceLineNo">165</span>            + " not running");<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      } else {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        LOG.info("We're replica region " + replicaId);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      }<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  /**<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   * This copro is used to slow down the primary meta region scan a bit<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static class RegionServerHostingPrimayMetaRegionSlowOrStopCopro<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      implements RegionCoprocessor, RegionObserver {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    static boolean slowDownPrimaryMetaScan = false;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    static boolean throwException = false;<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    @Override<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return Optional.of(this);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
-<span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>    @Override<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>      // Fail for the primary replica, but not for meta<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      if (throwException) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        if (!e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>          LOG.info("Get, throw Region Server Stopped Exceptoin for region " + e.getEnvironment()<a name="line.194"></a>
-<span class="sourceLineNo">195</span>              .getRegion().getRegionInfo());<a name="line.195"></a>
-<span class="sourceLineNo">196</span>          throw new RegionServerStoppedException("Server " +<a name="line.196"></a>
-<span class="sourceLineNo">197</span>            ((HasRegionServerServices)e.getEnvironment()).getRegionServerServices().getServerName()<a name="line.197"></a>
-<span class="sourceLineNo">198</span>                  + " not running");<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        }<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      } else {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        LOG.info("Get, We're replica region " + replicaId);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      }<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>    @Override<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.206"></a>
-<span class="sourceLineNo">207</span>        final Scan scan) throws IOException {<a name="line.207"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.regionserver.RegionServerStoppedException;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.regionserver.StorefileRefresherChore;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.junit.AfterClass;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.junit.Assert;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.junit.BeforeClass;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.junit.Test;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.junit.experimental.categories.Category;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>@Category({MediumTests.class, ClientTests.class})<a name="line.70"></a>
+<span class="sourceLineNo">071</span>public class TestReplicaWithCluster {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private static final Log LOG = LogFactory.getLog(TestReplicaWithCluster.class);<a name="line.72"></a>
+<span class="sourceLineNo">073</span><a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private static final int NB_SERVERS = 3;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final byte[] row = TestReplicaWithCluster.class.getName().getBytes();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private static final HBaseTestingUtility HTU = new HBaseTestingUtility();<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>  // second minicluster used in testing of replication<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static HBaseTestingUtility HTU2;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static final byte[] f = HConstants.CATALOG_FAMILY;<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private final static int REFRESH_PERIOD = 1000;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private final static int META_SCAN_TIMEOUT_IN_MILLISEC = 200;<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * This copro is used to synchronize the tests.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public static class SlowMeCopro implements RegionCoprocessor, RegionObserver {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    static final AtomicLong sleepTime = new AtomicLong(0);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    static final AtomicReference&lt;CountDownLatch&gt; cdl = new AtomicReference&lt;&gt;(new CountDownLatch(0));<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    public SlowMeCopro() {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    }<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>    @Override<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      return Optional.of(this);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>    @Override<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>                         final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() == 0) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>        CountDownLatch latch = cdl.get();<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        try {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>          if (sleepTime.get() &gt; 0) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>            LOG.info("Sleeping for " + sleepTime.get() + " ms");<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            Thread.sleep(sleepTime.get());<a name="line.109"></a>
+<span class="sourceLineNo">110</span>          } else if (latch.getCount() &gt; 0) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>            LOG.info("Waiting for the counterCountDownLatch");<a name="line.111"></a>
+<span class="sourceLineNo">112</span>            latch.await(2, TimeUnit.MINUTES); // To help the tests to finish.<a name="line.112"></a>
+<span class="sourceLineNo">113</span>            if (latch.getCount() &gt; 0) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>              throw new RuntimeException("Can't wait more");<a name="line.114"></a>
+<span class="sourceLineNo">115</span>            }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>          }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        } catch (InterruptedException e1) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>          LOG.error(e1);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      } else {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        LOG.info("We're not the primary replicas.");<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>  /**<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   * This copro is used to simulate region server down exception for Get and Scan<a name="line.127"></a>
+<span class="sourceLineNo">128</span>   */<a name="line.128"></a>
+<span class="sourceLineNo">129</span>  @CoreCoprocessor<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  public static class RegionServerStoppedCopro implements RegionCoprocessor, RegionObserver {<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>    public RegionServerStoppedCopro() {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    @Override<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      return Optional.of(this);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>    @Override<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>      // Fail for the primary replica and replica 1<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.149"></a>
+<span class="sourceLineNo">150</span>            + " not running");<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      } else {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        LOG.info("We're replica region " + replicaId);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>    @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        final Scan scan) throws IOException {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      // Fail for the primary replica and replica 1<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      if (e.getEnvironment().getRegion().getRegionInfo().getReplicaId() &lt;= 1) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        LOG.info("Throw Region Server Stopped Exceptoin for replica id " + replicaId);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            + " not running");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      } else {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        LOG.info("We're replica region " + replicaId);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  /**<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   * This copro is used to slow down the primary meta region scan a bit<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   */<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public static class RegionServerHostingPrimayMetaRegionSlowOrStopCopro<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      implements RegionCoprocessor, RegionObserver {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    static boolean slowDownPrimaryMetaScan = false;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    static boolean throwException = false;<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    @Override<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      return Optional.of(this);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>    @Override<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    public void preGetOp(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        final Get get, final List&lt;Cell&gt; results) throws IOException {<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.188"></a>
+<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">190</span>      // Fail for the primary replica, but not for meta<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      if (throwException) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        if (!e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          LOG.info("Get, throw Region Server Stopped Exceptoin for region " + e.getEnvironment()<a name="line.193"></a>
+<span class="sourceLineNo">194</span>              .getRegion().getRegionInfo());<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.195"></a>
+<span class="sourceLineNo">196</span>                  + " not running");<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      } else {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        LOG.info("Get, We're replica region " + replicaId);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    @Override<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    public void preScannerOpen(final ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        final Scan scan) throws IOException {<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.207"></a>
 <span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>      int replicaId = e.getEnvironment().getRegion().getRegionInfo().getReplicaId();<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>      // Slow down with the primary meta region scan<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      if (e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        if (slowDownPrimaryMetaScan) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>          LOG.info("Scan with primary meta region, slow down a bit");<a name="line.214"></a>
-<span class="sourceLineNo">215</span>          try {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>            Thread.sleep(META_SCAN_TIMEOUT_IN_MILLISEC - 50);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>          } catch (InterruptedException ie) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>            // Ingore<a name="line.218"></a>
-<span class="sourceLineNo">219</span>          }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>        // Fail for the primary replica<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        if (throwException) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>          LOG.info("Scan, throw Region Server Stopped Exceptoin for replica " + e.getEnvironment()<a name="line.224"></a>
-<span class="sourceLineNo">225</span>              .getRegion().getRegionInfo());<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>          throw new RegionServerStoppedException("Server " +<a name="line.227"></a>
-<span class="sourceLineNo">228</span>            ((HasRegionServerServices)e.getEnvironment()).getRegionServerServices().getServerName()<a name="line.228"></a>
-<span class="sourceLineNo">229</span>               + " not running");<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        } else {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>          LOG.info("Scan, We're replica region " + replicaId);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      } else {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        LOG.info("Scan, We're replica region " + replicaId);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      }<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    }<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  }<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>  @BeforeClass<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  public static void beforeClass() throws Exception {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    // enable store file refreshing<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    HTU.getConfiguration().setInt(StorefileRefresherChore.REGIONSERVER_STOREFILE_REFRESH_PERIOD,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        REFRESH_PERIOD);<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>    HTU.getConfiguration().setFloat("hbase.regionserver.logroll.multiplier", 0.0001f);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    HTU.getConfiguration().setInt("replication.source.size.capacity", 10240);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    HTU.getConfiguration().setLong("replication.source.sleepforretries", 100);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    HTU.getConfiguration().setInt("hbase.regionserver.maxlogs", 2);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    HTU.getConfiguration().setLong("hbase.master.logcleaner.ttl", 10);<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry", 1);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // Wait for primary call longer so make sure that it will get exception from the primary call<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.get", 1000000);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.scan", 1000000);<a name="line.255"></a>
+<span class="sourceLineNo">209</span>      // Slow down with the primary meta region scan<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      if (e.getEnvironment().getRegion().getRegionInfo().isMetaRegion() &amp;&amp; (replicaId == 0)) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        if (slowDownPrimaryMetaScan) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>          LOG.info("Scan with primary meta region, slow down a bit");<a name="line.212"></a>
+<span class="sourceLineNo">213</span>          try {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>            Thread.sleep(META_SCAN_TIMEOUT_IN_MILLISEC - 50);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>          } catch (InterruptedException ie) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>            // Ingore<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>        // Fail for the primary replica<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        if (throwException) {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          LOG.info("Scan, throw Region Server Stopped Exceptoin for replica " + e.getEnvironment()<a name="line.222"></a>
+<span class="sourceLineNo">223</span>              .getRegion().getRegionInfo());<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>          throw new RegionServerStoppedException("Server " + e.getEnvironment().getServerName()<a name="line.225"></a>
+<span class="sourceLineNo">226</span>               + " not running");<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        } else {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          LOG.info("Scan, We're replica region " + replicaId);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      } else {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        LOG.info("Scan, We're replica region " + replicaId);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>  @BeforeClass<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  public static void beforeClass() throws Exception {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    // enable store file refreshing<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    HTU.getConfiguration().setInt(StorefileRefresherChore.REGIONSERVER_STOREFILE_REFRESH_PERIOD,<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        REFRESH_PERIOD);<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>    HTU.getConfiguration().setFloat("hbase.regionserver.logroll.multiplier", 0.0001f);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    HTU.getConfiguration().setInt("replication.source.size.capacity", 10240);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    HTU.getConfiguration().setLong("replication.source.sleepforretries", 100);<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    HTU.getConfiguration().setInt("hbase.regionserver.maxlogs", 2);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    HTU.getConfiguration().setLong("hbase.master.logcleaner.ttl", 10);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry", 1);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    HTU.getConfiguration().setInt("zookeeper.recovery.retry.intervalmill", 10);<a name="line.248"></a>
+<span class="sourceLineNo">249</span><a name="line.249"></a>
+<span class="sourceLineNo">250</span>    // Wait for primary call longer so make sure that it will get exception from the primary call<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.get", 1000000);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    HTU.getConfiguration().setInt("hbase.client.primaryCallTimeout.scan", 1000000);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>    // Retry less so it can fail faster<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    HTU.getConfiguration().setInt("hbase.client.retries.number", 1);<a name="line.255"></a>
 <span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    // Retry less so it can fail faster<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    HTU.getConfiguration().setInt("hbase.client.retries.number", 1);<a name="line.258"></a>
+<span class="sourceLineNo">257</span>    // Enable meta replica at server side<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    HTU.getConfiguration().setInt("hbase.meta.replica.count", 2);<a name="line.258"></a>
 <span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    // Enable meta replica at server side<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    HTU.getConfiguration().setInt("hbase.meta.replica.count", 2);<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    // Make sure master does not host system tables.<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    HTU.getConfiguration().set("hbase.balancer.tablesOnMaster", "none");<a name="line.261"></a>
 <span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    // Make sure master does not host system tables.<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    HTU.getConfiguration().set("hbase.balancer.tablesOnMaster", "none");<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>    // Set system coprocessor so it can be applied to meta regions<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    HTU.getConfiguration().set("hbase.coprocessor.region.classes",<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        RegionServerHostingPrimayMetaRegionSlowOrStopCopro.class.getName());<a name="line.268"></a>
+<span class="sourceLineNo">263</span>    // Set system coprocessor so it can be applied to meta regions<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    HTU.getConfiguration().set("hbase.coprocessor.region.classes",<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        RegionServerHostingPrimayMetaRegionSlowOrStopCopro.class.getName());<a name="line.265"></a>
+<span class="sourceLineNo">266</span><a name="line.266"></a>
+<span class="sourceLineNo">267</span>    HTU.getConfiguration().setInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,<a name="line.267"></a>
+<span class="sourceLineNo">268</span>        META_SCAN_TIMEOUT_IN_MILLISEC * 1000);<a name="line.268"></a>
 <span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>    HTU.getConfiguration().setInt(HConstants.HBASE_CLIENT_META_REPLICA_SCAN_TIMEOUT,<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        META_SCAN_TIMEOUT_IN_MILLISEC * 1000);<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    HTU.startMiniCluster(NB_SERVERS);<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    HTU.getHBaseCluster().startMaster();<a name="line.274"></a>
-<span class="sourceLineNo">275</span>  }<a name="line.275"></a>
-<span class="sourceLineNo">276</span><a name="line.276"></a>
-<span class="sourceLineNo">277</span>  @AfterClass<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  public static void afterClass() throws Exception {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    if (HTU2 != null)<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      HTU2.shutdownMiniCluster();<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    HTU.shutdownMiniCluster();<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  }<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  @Test (timeout=30000)<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public void testCreateDeleteTable() throws IOException {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    // Create table then get the single region for our new table.<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testCreateDeleteTable");<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.290"></a>
-<span class="sourceLineNo">291</span><a name="line.291"></a>
-<span class="sourceLineNo">292</span>    Put p = new Put(row);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    p.addColumn(f, row, row);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    table.put(p);<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span>    Get g = new Get(row);<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    Result r = table.get(g);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    Assert.assertFalse(r.isStale());<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>    try {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      // But if we ask for stale we will get it<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      g = new Get(row);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      r = table.get(g);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>      Assert.assertTrue(r.isStale());<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      SlowMeCopro.cdl.get().countDown();<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    } finally {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      SlowMeCopro.cdl.get().countDown();<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      SlowMeCopro.sleepTime.set(0);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    }<a name="line.311"></a>
-<span class="sourceLineNo">312</span><a name="line.312"></a>
-<span class="sourceLineNo">313</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    HTU.deleteTable(hdt.getTableName());<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>  @Test (timeout=120000)<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  public void testChangeTable() throws Exception {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    TableDescriptor td = TableDescriptorBuilder.newBuilder(TableName.valueOf("testChangeTable"))<a name="line.319"></a>
-<span class="sourceLineNo">320</span>            .setRegionReplication(NB_SERVERS)<a name="line.320"></a>
-<span class="sourceLineNo">321</span>            .addCoprocessor(SlowMeCopro.class.getName())<a name="line.321"></a>
-<span class="sourceLineNo">322</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(f))<a name="line.322"></a>
-<span class="sourceLineNo">323</span>            .build();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    HTU.getAdmin().createTable(td);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    Table table = HTU.getConnection().getTable(td.getTableName());<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    // basic test: it should work.<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    Put p = new Put(row);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    p.addColumn(f, row, row);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    table.put(p);<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>    Get g = new Get(row);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    Result r = table.get(g);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    Assert.assertFalse(r.isStale());<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>    // Add a CF, it should work.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    TableDescriptor bHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    td = TableDescriptorBuilder.newBuilder(td)<a name="line.337"></a>
-<span class="sourceLineNo">338</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(row))<a name="line.338"></a>
-<span class="sourceLineNo">339</span>            .build();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    HTU.getAdmin().disableTable(td.getTableName());<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    HTU.getAdmin().modifyTable(td);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    HTU.getAdmin().enableTable(td.getTableName());<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    TableDescriptor nHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.344"></a>
-<span class="sourceLineNo">345</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>    p = new Put(row);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    p.addColumn(row, row, row);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    table.put(p);<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>    g = new Get(row);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    r = table.get(g);<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    Assert.assertFalse(r.isStale());<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    try {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>      g = new Get(row);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      r = table.get(g);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      Assert.assertTrue(r.isStale());<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    } finally {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      SlowMeCopro.cdl.get().countDown();<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      SlowMeCopro.sleepTime.set(0);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    Admin admin = HTU.getAdmin();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    nHdt =admin.getDescriptor(td.getTableName());<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>    admin.disableTable(td.getTableName());<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    admin.deleteTable(td.getTableName());<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    admin.close();<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  }<a name="line.374"></a>
-<span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  @SuppressWarnings("deprecation")<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  @Test (timeout=300000)<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  public void testReplicaAndReplication() throws Exception {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testReplicaAndReplication");<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>    HColumnDescriptor fam = new HColumnDescriptor(row);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    hdt.addFamily(fam);<a name="line.384"></a>
+<span class="sourceLineNo">270</span>    HTU.startMiniCluster(NB_SERVERS);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    HTU.getHBaseCluster().startMaster();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>  @AfterClass<a name="line.274"></a>
+<span class="sourceLineNo">275</span>  public static void afterClass() throws Exception {<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    if (HTU2 != null)<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      HTU2.shutdownMiniCluster();<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    HTU.shutdownMiniCluster();<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
+<span class="sourceLineNo">280</span><a name="line.280"></a>
+<span class="sourceLineNo">281</span>  @Test (timeout=30000)<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public void testCreateDeleteTable() throws IOException {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    // Create table then get the single region for our new table.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testCreateDeleteTable");<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    Put p = new Put(row);<a name="line.289"></a>
+<span class="sourceLineNo">290</span>    p.addColumn(f, row, row);<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    table.put(p);<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span>    Get g = new Get(row);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>    Result r = table.get(g);<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    Assert.assertFalse(r.isStale());<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span>    try {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      // But if we ask for stale we will get it<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      g = new Get(row);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      r = table.get(g);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      Assert.assertTrue(r.isStale());<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      SlowMeCopro.cdl.get().countDown();<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    } finally {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      SlowMeCopro.cdl.get().countDown();<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      SlowMeCopro.sleepTime.set(0);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    HTU.deleteTable(hdt.getTableName());<a name="line.311"></a>
+<span class="sourceLineNo">312</span>  }<a name="line.312"></a>
+<span class="sourceLineNo">313</span><a name="line.313"></a>
+<span class="sourceLineNo">314</span>  @Test (timeout=120000)<a name="line.314"></a>
+<span class="sourceLineNo">315</span>  public void testChangeTable() throws Exception {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    TableDescriptor td = TableDescriptorBuilder.newBuilder(TableName.valueOf("testChangeTable"))<a name="line.316"></a>
+<span class="sourceLineNo">317</span>            .setRegionReplication(NB_SERVERS)<a name="line.317"></a>
+<span class="sourceLineNo">318</span>            .addCoprocessor(SlowMeCopro.class.getName())<a name="line.318"></a>
+<span class="sourceLineNo">319</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(f))<a name="line.319"></a>
+<span class="sourceLineNo">320</span>            .build();<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    HTU.getAdmin().createTable(td);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    Table table = HTU.getConnection().getTable(td.getTableName());<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    // basic test: it should work.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    Put p = new Put(row);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    p.addColumn(f, row, row);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    table.put(p);<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>    Get g = new Get(row);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    Result r = table.get(g);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    Assert.assertFalse(r.isStale());<a name="line.330"></a>
+<span class="sourceLineNo">331</span><a name="line.331"></a>
+<span class="sourceLineNo">332</span>    // Add a CF, it should work.<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    TableDescriptor bHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    td = TableDescriptorBuilder.newBuilder(td)<a name="line.334"></a>
+<span class="sourceLineNo">335</span>            .addColumnFamily(ColumnFamilyDescriptorBuilder.of(row))<a name="line.335"></a>
+<span class="sourceLineNo">336</span>            .build();<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    HTU.getAdmin().disableTable(td.getTableName());<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    HTU.getAdmin().modifyTable(td);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    HTU.getAdmin().enableTable(td.getTableName());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    TableDescriptor nHdt = HTU.getAdmin().getDescriptor(td.getTableName());<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>    p = new Put(row);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    p.addColumn(row, row, row);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    table.put(p);<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>    g = new Get(row);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    r = table.get(g);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    Assert.assertFalse(r.isStale());<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      g = new Get(row);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      g.setConsistency(Consistency.TIMELINE);<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      r = table.get(g);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      Assert.assertTrue(r.isStale());<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    } finally {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      SlowMeCopro.cdl.get().countDown();<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      SlowMeCopro.sleepTime.set(0);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    Admin admin = HTU.getAdmin();<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    nHdt =admin.getDescriptor(td.getTableName());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    Assert.assertEquals("fams=" + Arrays.toString(nHdt.getColumnFamilies()),<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        bHdt.getColumnFamilyCount() + 1, nHdt.getColumnFamilyCount());<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span>    admin.disableTable(td.getTableName());<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    admin.deleteTable(td.getTableName());<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    admin.close();<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span>  @SuppressWarnings("deprecation")<a name="line.373"></a>
+<span class="sourceLineNo">374</span>  @Test (timeout=300000)<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  public void testReplicaAndReplication() throws Exception {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testReplicaAndReplication");<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span>    HColumnDescriptor fam = new HColumnDescriptor(row);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    fam.setScope(HConstants.REPLICATION_SCOPE_GLOBAL);<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    hdt.addFamily(fam);<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    HTU.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.384"></a>
 <span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    HTU.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>    Configuration conf2 = HBaseConfiguration.create(HTU.getConfiguration());<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    conf2.set(HConstants.HBASE_CLIENT_INSTANCE_ID, String.valueOf(-1));<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    MiniZooKeeperCluster miniZK = HTU.getZkCluster();<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>    HTU2 = new HBaseTestingUtility(conf2);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    HTU2.setZkCluster(miniZK);<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    HTU2.startMiniCluster(NB_SERVERS);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    LOG.info("Setup second Zk");<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    HTU2.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());<a name="line.400"></a>
-<span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    rpc.setClusterKey(HTU2.getClusterKey());<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    admin.addPeer("2", rpc, null);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    admin.close();<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>    Put p = new Put(row);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    p.addColumn(row, row, row);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    final Table table = HTU.getConnection().getTable(hdt.getTableName());<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    table.put(p);<a name="line.410"></a>
+<span class="sourceLineNo">386</span>    Configuration conf2 = HBaseConfiguration.create(HTU.getConfiguration());<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    conf2.set(HConstants.HBASE_CLIENT_INSTANCE_ID, String.valueOf(-1));<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    conf2.set(HConstants.ZOOKEEPER_ZNODE_PARENT, "/2");<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    MiniZooKeeperCluster miniZK = HTU.getZkCluster();<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>    HTU2 = new HBaseTestingUtility(conf2);<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    HTU2.setZkCluster(miniZK);<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    HTU2.startMiniCluster(NB_SERVERS);<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    LOG.info("Setup second Zk");<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    HTU2.getAdmin().createTable(hdt, HBaseTestingUtility.KEYS_FOR_HBA_CREATE_TABLE);<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>    ReplicationAdmin admin = new ReplicationAdmin(HTU.getConfiguration());<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>    ReplicationPeerConfig rpc = new ReplicationPeerConfig();<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    rpc.setClusterKey(HTU2.getClusterKey());<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    admin.addPeer("2", rpc, null);<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    admin.close();<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span>    Put p = new Put(row);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    p.addColumn(row, row, row);<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    final Table table = HTU.getConnection().getTable(hdt.getTableName());<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    table.put(p);<a name="line.407"></a>
+<span class="sourceLineNo">408</span><a name="line.408"></a>
+<span class="sourceLineNo">409</span>    HTU.getAdmin().flush(table.getName());<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    LOG.info("Put &amp; flush done on the first cluster. Now doing a get on the same cluster.");<a name="line.410"></a>
 <span class="sourceLineNo">411</span><a name="line.411"></a>
-<span class="sourceLineNo">412</span>    HTU.getAdmin().flush(table.getName());<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    LOG.info("Put &amp; flush done on the first cluster. Now doing a get on the same cluster.");<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      @Override public boolean evaluate() throws Exception {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        try {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          Get g = new Get(row);<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.420"></a>
-<span class="sourceLineNo">421</span>          Result r = table.get(g);<a name="line.421"></a>
-<span class="sourceLineNo">422</span>          Assert.assertTrue(r.isStale());<a name="line.422"></a>
-<span class="sourceLineNo">423</span>          return !r.isEmpty();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        } finally {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>          SlowMeCopro.cdl.get().countDown();<a name="line.425"></a>
-<span class="sourceLineNo">426</span>          SlowMeCopro.sleepTime.set(0);<a name="line.426"></a>
-<span class="sourceLineNo">427</span>        }<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      }<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    });<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    table.close();<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    LOG.info("stale get on the first cluster done. Now for the second.");<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>    final Table table2 = HTU.getConnection().getTable(hdt.getTableName());<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      @Override public boolean evaluate() throws Exception {<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        try {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.437"></a>
-<span class="sourceLineNo">438</span>          Get g = new Get(row);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          Result r = table2.get(g);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>          Assert.assertTrue(r.isStale());<a name="line.441"></a>
-<span class="sourceLineNo">442</span>          return !r.isEmpty();<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        } finally {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          SlowMeCopro.cdl.get().countDown();<a name="line.444"></a>
-<span class="sourceLineNo">445</span>          SlowMeCopro.sleepTime.set(0);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>        }<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    });<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    table2.close();<a name="line.449"></a>
+<span class="sourceLineNo">412</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      @Override public boolean evaluate() throws Exception {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        try {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.415"></a>
+<span class="sourceLineNo">416</span>          Get g = new Get(row);<a name="line.416"></a>
+<span class="sourceLineNo">417</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.417"></a>
+<span class="sourceLineNo">418</span>          Result r = table.get(g);<a name="line.418"></a>
+<span class="sourceLineNo">419</span>          Assert.assertTrue(r.isStale());<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          return !r.isEmpty();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>        } finally {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>          SlowMeCopro.cdl.get().countDown();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          SlowMeCopro.sleepTime.set(0);<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        }<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    });<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    table.close();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    LOG.info("stale get on the first cluster done. Now for the second.");<a name="line.428"></a>
+<span class="sourceLineNo">429</span><a name="line.429"></a>
+<span class="sourceLineNo">430</span>    final Table table2 = HTU.getConnection().getTable(hdt.getTableName());<a name="line.430"></a>
+<span class="sourceLineNo">431</span>    Waiter.waitFor(HTU.getConfiguration(), 1000, new Waiter.Predicate&lt;Exception&gt;() {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      @Override public boolean evaluate() throws Exception {<a name="line.432"></a>
+<span class="sourceLineNo">433</span>        try {<a name="line.433"></a>
+<span class="sourceLineNo">434</span>          SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.434"></a>
+<span class="sourceLineNo">435</span>          Get g = new Get(row);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>          g.setConsistency(Consistency.TIMELINE);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>          Result r = table2.get(g);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>          Assert.assertTrue(r.isStale());<a name="line.438"></a>
+<span class="sourceLineNo">439</span>          return !r.isEmpty();<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        } finally {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>          SlowMeCopro.cdl.get().countDown();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>          SlowMeCopro.sleepTime.set(0);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>        }<a name="line.443"></a>
+<span class="sourceLineNo">444</span>      }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    });<a name="line.445"></a>
+<span class="sourceLineNo">446</span>    table2.close();<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    HTU.deleteTable(hdt.getTableName());<a name="line.449"></a>
 <span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    HTU.deleteTable(hdt.getTableName());<a name="line.452"></a>
+<span class="sourceLineNo">451</span>    HTU2.getAdmin().disableTable(hdt.getTableName());<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    HTU2.deleteTable(hdt.getTableName());<a name="line.452"></a>
 <span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>    HTU2.getAdmin().disableTable(hdt.getTableName());<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    HTU2.deleteTable(hdt.getTableName());<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span>    // We shutdown HTU2 minicluster later, in afterClass(), as shutting down<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    // the minicluster has negative impact of deleting all HConnections in JVM.<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  @Test (timeout=30000)<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  public void testBulkLoad() throws IOException {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    // Create table then get the single region for our new table.<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    LOG.debug("Creating test table");<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    HTableDescriptor hdt = HTU.createTableDescriptor("testBulkLoad");<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    hdt.setRegionReplication(NB_SERVERS);<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    hdt.addCoprocessor(SlowMeCopro.class.getName());<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    Table table = HTU.createTable(hdt, new byte[][]{f}, null);<a name="line.468"></a>
-<span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span>    // create hfiles to load.<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    LOG.debug("Creating test data");<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    Path dir = HTU.getDataTestDirOnTestFS("testBulkLoad");<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    final int numRows = 10;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    final byte[] qual = Bytes.toBytes("qual");<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    final byte[] val  = Bytes.toBytes("val");<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    final List&lt;Pair&lt;byte[], String&gt;&gt; famPaths = new ArrayList&lt;&gt;();<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    for (HColumnDescriptor col : hdt.getColumnFamilies()) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      Path hfile = new Path(dir, col.getNameAsString());<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      TestHRegionServerBulkLoad.createHFile(HTU.getTestFileSystem(), hfile, col.getName(),<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        qual, val, numRows);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      famPaths.add(new Pair&lt;&gt;(col.getName(), hfile.toString()));<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>    // bulk load HFiles<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    LOG.debug("Loading test data");<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    final ClusterConnection conn = (ClusterConnection) HTU.getAdmin().getConnection();<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    table = conn.getTable(hdt.getTableName());<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    final String bulkToken =<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        new SecureBulkLoadClient(HTU.getConfiguration(), table).prepareBulkLoad(conn);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    ClientServiceCallable&lt;Void&gt; callable = new ClientServiceCallable&lt;Void&gt;(conn,<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        hdt.getTableName(), TestHRegionServerBulkLoad.rowkey(0),<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        new RpcControllerFactory(HTU.getConfiguration()).newController(), HConstants.PRIORITY_UNSET) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      @Override<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      protected Void rpcCall() throws Exception {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>        LOG.debug("Going to connect to server " + getLocation() + " for row "<a name="line.495"></a>
-<span class="sourceLineNo">496</span>            + Bytes.toStringBinary(getRow()));<a name="line.496"></a>
-<span class="sourceLineNo">497</span>        SecureBulkLoadClient secureClient = null;<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        byte[] regionName = getLocation().getRegionInfo().getRegionName();<a name="line.498"></a>
-<span class="sourceLineNo">499</span>        try (Table table = conn.getTable(getTableName())) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>          secureClient = new SecureBulkLoadClient(HTU.getConfiguration(), table);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          secureClient.secureBulkLoadHFiles(getStub(), famPaths, regionName,<a name="line.501"></a>
-<span class="sourceLineNo">502</span>              true, null, bulkToken);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        }<a name="line.503"></a>
-<span class="sourceLineNo">504</span>        return null;<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    };<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    RpcRetryingCallerFactory factory = new RpcRetryingCallerFactory(HTU.getConfiguration());<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    RpcRetryingCaller&lt;Void&gt; caller = factory.newCaller();<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    caller.callWithRetries(callable, 10000);<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // verify we can read them from the primary<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    LOG.debug("Verifying data load");<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    for (int i = 0; i &lt; numRows; i++) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      byte[] row = TestHRegionServerBulkLoad.rowkey(i);<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      Get g = new Get(row);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      Result r = table.get(g);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>      Assert.assertFalse(r.isStale());<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    }<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span>    // verify we can read them from the replica<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    LOG.debug("Verifying replica queries");<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    try {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      SlowMeCopro.cdl.set(new CountDownLatch(1));<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      for (int i = 0; i &lt; numRows; i++) {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>        byte[] row = TestHRegionServerBulkLoad.rowkey(i);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>        Get g = new Get(row);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>        g.setConsistency(Consistency.TIMELINE);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>        Result r = table.get(g);<a name="line.528"></a>
-<span class="sourceLineNo">529</span>        Assert.assertTrue(r.isStale());<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      SlowMeCopro.cdl.get().countDown();<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    } finally {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      SlowMeCopro.cdl.get().countDown();<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      SlowMeCopro.sleepTime.set(0);<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    HTU.getAdmin().disableTable(hdt.getTableName());<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    HTU.deleteTable(hdt.getTableName());<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  }<a name="line.539"></a>
-<span class="sourceLineNo">540</span><a name="line.540"></a>
-<span class="sourceLineNo">541</span>  @Test<a name="line.541"></a>
-<span class="sourceLineNo">542</span>  public void t

<TRUNCATED>

[30/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.html b/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.html
index e8675ce..1aaa281 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.html
@@ -304,191 +304,194 @@
 <span class="sourceLineNo">296</span><a name="line.296"></a>
 <span class="sourceLineNo">297</span>  @InterfaceAudience.Private<a name="line.297"></a>
 <span class="sourceLineNo">298</span>  public List&lt;RegionState&gt; getRegionsInTransition() {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    return this.intransition;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>  public String getClusterId() {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    return clusterId;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public String[] getMasterCoprocessors() {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    return masterCoprocessors;<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  public long getLastMajorCompactionTsForTable(TableName table) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    long result = Long.MAX_VALUE;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    for (ServerName server : getServers()) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      ServerLoad load = getLoad(server);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      for (RegionLoad rl : load.getRegionsLoad().values()) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        if (table.equals(HRegionInfo.getTable(rl.getName()))) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          result = Math.min(result, rl.getLastMajorCompactionTs());<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    return result == Long.MAX_VALUE ? 0 : result;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public long getLastMajorCompactionTsForRegion(final byte[] region) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    for (ServerName server : getServers()) {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      ServerLoad load = getLoad(server);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      RegionLoad rl = load.getRegionsLoad().get(region);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      if (rl != null) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        return rl.getLastMajorCompactionTs();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    return 0;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public boolean isBalancerOn() {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    return balancerOn != null &amp;&amp; balancerOn;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public Boolean getBalancerOn() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return balancerOn;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  public int getMasterInfoPort() {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    return masterInfoPort;<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  public String toString() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    StringBuilder sb = new StringBuilder(1024);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    sb.append("Master: " + master);<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>    int backupMastersSize = getBackupMastersSize();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    sb.append("\nNumber of backup masters: " + backupMastersSize);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    if (backupMastersSize &gt; 0) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      for (ServerName serverName: backupMasters) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        sb.append("\n  " + serverName);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      }<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    int serversSize = getServersSize();<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    sb.append("\nNumber of live region servers: " + serversSize);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    if (serversSize &gt; 0) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      for (ServerName serverName: liveServers.keySet()) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        sb.append("\n  " + serverName.getServerName());<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    int deadServerSize = getDeadServersSize();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    sb.append("\nNumber of dead region servers: " + deadServerSize);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (deadServerSize &gt; 0) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      for (ServerName serverName: deadServers) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        sb.append("\n  " + serverName);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>    sb.append("\nAverage load: " + getAverageLoad());<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    sb.append("\nNumber of requests: " + getRequestsCount());<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    sb.append("\nNumber of regions: " + getRegionsCount());<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>    int ritSize = (intransition != null) ? intransition.size() : 0;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    sb.append("\nNumber of regions in transition: " + ritSize);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    if (ritSize &gt; 0) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      for (RegionState state: intransition) {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        sb.append("\n  " + state.toDescriptiveString());<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      }<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return sb.toString();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  @InterfaceAudience.Private<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  public static Builder newBuilder() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    return new Builder();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>  /**<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * Builder for construct a ClusterStatus.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  @InterfaceAudience.Private<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  public static class Builder {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    private String hbaseVersion = null;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    private Map&lt;ServerName, ServerLoad&gt; liveServers = null;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    private List&lt;ServerName&gt; deadServers = null;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    private ServerName master = null;<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    private List&lt;ServerName&gt; backupMasters = null;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    private List&lt;RegionState&gt; intransition = null;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    private String clusterId = null;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    private String[] masterCoprocessors = null;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    private Boolean balancerOn = null;<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    private int masterInfoPort = -1;<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>    private Builder() {}<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>    public Builder setHBaseVersion(String hbaseVersion) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      this.hbaseVersion = hbaseVersion;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      return this;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>    public Builder setLiveServers(Map&lt;ServerName, ServerLoad&gt; liveServers) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      this.liveServers = liveServers;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      return this;<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>    public Builder setDeadServers(List&lt;ServerName&gt; deadServers) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      this.deadServers = deadServers;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return this;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    public Builder setMaster(ServerName master) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      this.master = master;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      return this;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    }<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>    public Builder setBackupMasters(List&lt;ServerName&gt; backupMasters) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      this.backupMasters = backupMasters;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      return this;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    public Builder setRegionState(List&lt;RegionState&gt; intransition) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      this.intransition = intransition;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      return this;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>    public Builder setClusterId(String clusterId) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      this.clusterId = clusterId;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      return this;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>    public Builder setMasterCoprocessors(String[] masterCoprocessors) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      this.masterCoprocessors = masterCoprocessors;<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      return this;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    public Builder setBalancerOn(Boolean balancerOn) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      this.balancerOn = balancerOn;<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      return this;<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    public Builder setMasterInfoPort(int masterInfoPort) {<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      this.masterInfoPort = masterInfoPort;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      return this;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>    public ClusterStatus build() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      return new ClusterStatus(hbaseVersion, clusterId, liveServers,<a name="line.462"></a>
-<span class="sourceLineNo">463</span>          deadServers, master, backupMasters, intransition, masterCoprocessors,<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          balancerOn, masterInfoPort);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>  /**<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   * Kinds of ClusterStatus<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   */<a name="line.470"></a>
-<span class="sourceLineNo">471</span>  public enum Option {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    HBASE_VERSION, /** status about hbase version */<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    CLUSTER_ID, /** status about cluster id */<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    BALANCER_ON, /** status about balancer is on or not */<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    LIVE_SERVERS, /** status about live region servers */<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    DEAD_SERVERS, /** status about dead region servers */<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    MASTER, /** status about master */<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    BACKUP_MASTERS, /** status about backup masters */<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    MASTER_COPROCESSORS, /** status about master coprocessors */<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    REGIONS_IN_TRANSITION, /** status about regions in transition */<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    MASTER_INFO_PORT; /** master info port **/<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>}<a name="line.483"></a>
+<span class="sourceLineNo">299</span>    if (intransition == null) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      return Collections.emptyList();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return Collections.unmodifiableList(intransition);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  public String getClusterId() {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    return clusterId;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>  public String[] getMasterCoprocessors() {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    return masterCoprocessors;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public long getLastMajorCompactionTsForTable(TableName table) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    long result = Long.MAX_VALUE;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    for (ServerName server : getServers()) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      ServerLoad load = getLoad(server);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      for (RegionLoad rl : load.getRegionsLoad().values()) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        if (table.equals(HRegionInfo.getTable(rl.getName()))) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>          result = Math.min(result, rl.getLastMajorCompactionTs());<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        }<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    }<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    return result == Long.MAX_VALUE ? 0 : result;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>  }<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>  public long getLastMajorCompactionTsForRegion(final byte[] region) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    for (ServerName server : getServers()) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      ServerLoad load = getLoad(server);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      RegionLoad rl = load.getRegionsLoad().get(region);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      if (rl != null) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        return rl.getLastMajorCompactionTs();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    return 0;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  public boolean isBalancerOn() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    return balancerOn != null &amp;&amp; balancerOn;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>  }<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  public Boolean getBalancerOn() {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return balancerOn;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public int getMasterInfoPort() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return masterInfoPort;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  public String toString() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    StringBuilder sb = new StringBuilder(1024);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    sb.append("Master: " + master);<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>    int backupMastersSize = getBackupMastersSize();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    sb.append("\nNumber of backup masters: " + backupMastersSize);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    if (backupMastersSize &gt; 0) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      for (ServerName serverName: backupMasters) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        sb.append("\n  " + serverName);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>    int serversSize = getServersSize();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    sb.append("\nNumber of live region servers: " + serversSize);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    if (serversSize &gt; 0) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      for (ServerName serverName: liveServers.keySet()) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        sb.append("\n  " + serverName.getServerName());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>    int deadServerSize = getDeadServersSize();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    sb.append("\nNumber of dead region servers: " + deadServerSize);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    if (deadServerSize &gt; 0) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      for (ServerName serverName: deadServers) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        sb.append("\n  " + serverName);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>    sb.append("\nAverage load: " + getAverageLoad());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    sb.append("\nNumber of requests: " + getRequestsCount());<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    sb.append("\nNumber of regions: " + getRegionsCount());<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>    int ritSize = (intransition != null) ? intransition.size() : 0;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    sb.append("\nNumber of regions in transition: " + ritSize);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    if (ritSize &gt; 0) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      for (RegionState state: intransition) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        sb.append("\n  " + state.toDescriptiveString());<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    return sb.toString();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>  @InterfaceAudience.Private<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  public static Builder newBuilder() {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return new Builder();<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>  /**<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * Builder for construct a ClusterStatus.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  @InterfaceAudience.Private<a name="line.399"></a>
+<span class="sourceLineNo">400</span>  public static class Builder {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    private String hbaseVersion = null;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    private Map&lt;ServerName, ServerLoad&gt; liveServers = null;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    private List&lt;ServerName&gt; deadServers = null;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    private ServerName master = null;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    private List&lt;ServerName&gt; backupMasters = null;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    private List&lt;RegionState&gt; intransition = null;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    private String clusterId = null;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    private String[] masterCoprocessors = null;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    private Boolean balancerOn = null;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    private int masterInfoPort = -1;<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    private Builder() {}<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>    public Builder setHBaseVersion(String hbaseVersion) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      this.hbaseVersion = hbaseVersion;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      return this;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>    public Builder setLiveServers(Map&lt;ServerName, ServerLoad&gt; liveServers) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      this.liveServers = liveServers;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      return this;<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>    public Builder setDeadServers(List&lt;ServerName&gt; deadServers) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      this.deadServers = deadServers;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      return this;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>    public Builder setMaster(ServerName master) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      this.master = master;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      return this;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>    public Builder setBackupMasters(List&lt;ServerName&gt; backupMasters) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      this.backupMasters = backupMasters;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      return this;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>    public Builder setRegionState(List&lt;RegionState&gt; intransition) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      this.intransition = intransition;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      return this;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>    public Builder setClusterId(String clusterId) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      this.clusterId = clusterId;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return this;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    public Builder setMasterCoprocessors(String[] masterCoprocessors) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>      this.masterCoprocessors = masterCoprocessors;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      return this;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    }<a name="line.452"></a>
+<span class="sourceLineNo">453</span><a name="line.453"></a>
+<span class="sourceLineNo">454</span>    public Builder setBalancerOn(Boolean balancerOn) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      this.balancerOn = balancerOn;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      return this;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
+<span class="sourceLineNo">458</span><a name="line.458"></a>
+<span class="sourceLineNo">459</span>    public Builder setMasterInfoPort(int masterInfoPort) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      this.masterInfoPort = masterInfoPort;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>      return this;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>    public ClusterStatus build() {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      return new ClusterStatus(hbaseVersion, clusterId, liveServers,<a name="line.465"></a>
+<span class="sourceLineNo">466</span>          deadServers, master, backupMasters, intransition, masterCoprocessors,<a name="line.466"></a>
+<span class="sourceLineNo">467</span>          balancerOn, masterInfoPort);<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    }<a name="line.468"></a>
+<span class="sourceLineNo">469</span>  }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>  /**<a name="line.471"></a>
+<span class="sourceLineNo">472</span>   * Kinds of ClusterStatus<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   */<a name="line.473"></a>
+<span class="sourceLineNo">474</span>  public enum Option {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    HBASE_VERSION, /** status about hbase version */<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    CLUSTER_ID, /** status about cluster id */<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    BALANCER_ON, /** status about balancer is on or not */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    LIVE_SERVERS, /** status about live region servers */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    DEAD_SERVERS, /** status about dead region servers */<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    MASTER, /** status about master */<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    BACKUP_MASTERS, /** status about backup masters */<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    MASTER_COPROCESSORS, /** status about master coprocessors */<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    REGIONS_IN_TRANSITION, /** status about regions in transition */<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    MASTER_INFO_PORT; /** master info port **/<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>}<a name="line.486"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index 4d26b63..cd726db 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "6a6409a30aa634875467683203de0e21e0491986";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "2e8bd0036dbdf3a99786e5531495d8d4cb51b86c";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Thu Nov 30 14:42:34 UTC 2017";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Fri Dec  1 14:42:20 UTC 2017";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "252c37b6e2a91e50595f45109cbc77dd";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "0be79d5711fa88be92020f5e7f116383";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html b/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
index 71f1001..81baff2 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
@@ -1107,210 +1107,228 @@
 <span class="sourceLineNo">1099</span>                          String groupName, boolean balancerRan) throws IOException {}<a name="line.1099"></a>
 <span class="sourceLineNo">1100</span><a name="line.1100"></a>
 <span class="sourceLineNo">1101</span>  /**<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>   * Called before add a replication peer<a name="line.1102"></a>
+<span class="sourceLineNo">1102</span>   * Called before servers are removed from rsgroup<a name="line.1102"></a>
 <span class="sourceLineNo">1103</span>   * @param ctx the environment to interact with the framework and master<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>   * @param peerId a short name that identifies the peer<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>   * @param peerConfig configuration for the replication peer<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>   */<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>  default void preAddReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>      String peerId, ReplicationPeerConfig peerConfig) throws IOException {}<a name="line.1108"></a>
+<span class="sourceLineNo">1104</span>   * @param servers set of decommissioned servers to remove<a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>   */<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>  default void preRemoveServers(<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>      Set&lt;Address&gt; servers) throws IOException {}<a name="line.1108"></a>
 <span class="sourceLineNo">1109</span><a name="line.1109"></a>
 <span class="sourceLineNo">1110</span>  /**<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>   * Called after add a replication peer<a name="line.1111"></a>
+<span class="sourceLineNo">1111</span>   * Called after servers are removed from rsgroup<a name="line.1111"></a>
 <span class="sourceLineNo">1112</span>   * @param ctx the environment to interact with the framework and master<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>   * @param peerId a short name that identifies the peer<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>   * @param peerConfig configuration for the replication peer<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>   */<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>  default void postAddReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span>      String peerId, ReplicationPeerConfig peerConfig) throws IOException {}<a name="line.1117"></a>
+<span class="sourceLineNo">1113</span>   * @param servers set of servers to remove<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>   */<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  default void postRemoveServers(<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>      Set&lt;Address&gt; servers) throws IOException {}<a name="line.1117"></a>
 <span class="sourceLineNo">1118</span><a name="line.1118"></a>
 <span class="sourceLineNo">1119</span>  /**<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * Called before remove a replication peer<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   * @param ctx<a name="line.1121"></a>
+<span class="sourceLineNo">1120</span>   * Called before add a replication peer<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>   * @param ctx the environment to interact with the framework and master<a name="line.1121"></a>
 <span class="sourceLineNo">1122</span>   * @param peerId a short name that identifies the peer<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>   */<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  default void preRemoveReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>      String peerId) throws IOException {}<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span><a name="line.1126"></a>
-<span class="sourceLineNo">1127</span>  /**<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span>   * Called after remove a replication peer<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @param ctx<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   * @param peerId a short name that identifies the peer<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   */<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>  default void postRemoveReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>      String peerId) throws IOException {}<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span><a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>  /**<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>   * Called before enable a replication peer<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>   * @param ctx<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>   * @param peerId a short name that identifies the peer<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>   */<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>  default void preEnableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      String peerId) throws IOException {}<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span><a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>  /**<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>   * Called after enable a replication peer<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>   * @param ctx<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>   * @param peerId a short name that identifies the peer<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>   */<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>  default void postEnableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>      String peerId) throws IOException {}<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span><a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>  /**<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>   * Called before disable a replication peer<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>   * @param ctx<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>   * @param peerId a short name that identifies the peer<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>   */<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>  default void preDisableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>      String peerId) throws IOException {}<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span><a name="line.1158"></a>
-<span class="sourceLineNo">1159</span>  /**<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span>   * Called after disable a replication peer<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>   * @param ctx<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>   * @param peerId a short name that identifies the peer<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>   */<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>  default void postDisableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>      String peerId) throws IOException {}<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span><a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>  /**<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>   * Called before get the configured ReplicationPeerConfig for the specified peer<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>   * @param ctx<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>   * @param peerId a short name that identifies the peer<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>   */<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>  default void preGetReplicationPeerConfig(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>      String peerId) throws IOException {}<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span><a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>  /**<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>   * Called after get the configured ReplicationPeerConfig for the specified peer<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>   * @param ctx<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>   * @param peerId a short name that identifies the peer<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>   */<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>  default void postGetReplicationPeerConfig(<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String peerId) throws IOException {}<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span><a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>  /**<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>   * Called before update peerConfig for the specified peer<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>   * @param ctx<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>   * @param peerId a short name that identifies the peer<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>   */<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>  default void preUpdateReplicationPeerConfig(<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String peerId,<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>      ReplicationPeerConfig peerConfig) throws IOException {}<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span><a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>  /**<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   * Called after update peerConfig for the specified peer<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>   * @param ctx the environment to interact with the framework and master<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>   * @param peerId a short name that identifies the peer<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>   */<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>  default void postUpdateReplicationPeerConfig(<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String peerId,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>      ReplicationPeerConfig peerConfig) throws IOException {}<a name="line.1199"></a>
+<span class="sourceLineNo">1123</span>   * @param peerConfig configuration for the replication peer<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>   */<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>  default void preAddReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1125"></a>
+<span class="sourceLineNo">1126</span>      String peerId, ReplicationPeerConfig peerConfig) throws IOException {}<a name="line.1126"></a>
+<span class="sourceLineNo">1127</span><a name="line.1127"></a>
+<span class="sourceLineNo">1128</span>  /**<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>   * Called after add a replication peer<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>   * @param ctx the environment to interact with the framework and master<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>   * @param peerId a short name that identifies the peer<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>   * @param peerConfig configuration for the replication peer<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>   */<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>  default void postAddReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>      String peerId, ReplicationPeerConfig peerConfig) throws IOException {}<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span><a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>  /**<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>   * Called before remove a replication peer<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>   * @param ctx<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>   * @param peerId a short name that identifies the peer<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>   */<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>  default void preRemoveReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>      String peerId) throws IOException {}<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span><a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>  /**<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>   * Called after remove a replication peer<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>   * @param ctx<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>   * @param peerId a short name that identifies the peer<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>   */<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>  default void postRemoveReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>      String peerId) throws IOException {}<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span><a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>  /**<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>   * Called before enable a replication peer<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>   * @param ctx<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>   * @param peerId a short name that identifies the peer<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span>   */<a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  default void preEnableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>      String peerId) throws IOException {}<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span><a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>  /**<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * Called after enable a replication peer<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * @param ctx<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   * @param peerId a short name that identifies the peer<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>   */<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  default void postEnableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>      String peerId) throws IOException {}<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span><a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>  /**<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>   * Called before disable a replication peer<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>   * @param ctx<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>   * @param peerId a short name that identifies the peer<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>   */<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>  default void preDisableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>      String peerId) throws IOException {}<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span><a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>  /**<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>   * Called after disable a replication peer<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>   * @param ctx<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>   * @param peerId a short name that identifies the peer<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>   */<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>  default void postDisableReplicationPeer(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>      String peerId) throws IOException {}<a name="line.1183"></a>
+<span class="sourceLineNo">1184</span><a name="line.1184"></a>
+<span class="sourceLineNo">1185</span>  /**<a name="line.1185"></a>
+<span class="sourceLineNo">1186</span>   * Called before get the configured ReplicationPeerConfig for the specified peer<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>   * @param ctx<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span>   * @param peerId a short name that identifies the peer<a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>   */<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>  default void preGetReplicationPeerConfig(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>      String peerId) throws IOException {}<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span><a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  /**<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>   * Called after get the configured ReplicationPeerConfig for the specified peer<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>   * @param ctx<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>   * @param peerId a short name that identifies the peer<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>   */<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>  default void postGetReplicationPeerConfig(<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String peerId) throws IOException {}<a name="line.1199"></a>
 <span class="sourceLineNo">1200</span><a name="line.1200"></a>
 <span class="sourceLineNo">1201</span>  /**<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>   * Called before list replication peers.<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>   * @param ctx the environment to interact with the framework and master<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>   * @param regex The regular expression to match peer id<a name="line.1204"></a>
+<span class="sourceLineNo">1202</span>   * Called before update peerConfig for the specified peer<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>   * @param ctx<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>   * @param peerId a short name that identifies the peer<a name="line.1204"></a>
 <span class="sourceLineNo">1205</span>   */<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>  default void preListReplicationPeers(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>      String regex) throws IOException {}<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span><a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>  /**<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>   * Called after list replication peers.<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span>   * @param ctx the environment to interact with the framework and master<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>   * @param regex The regular expression to match peer id<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>   */<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>  default void postListReplicationPeers(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>      String regex) throws IOException {}<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span><a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  /**<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span>   * Called before new LockProcedure is queued.<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span>   * @param ctx the environment to interact with the framework and master<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span>   */<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>  default void preRequestLock(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace,<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>      TableName tableName, RegionInfo[] regionInfos, String description) throws IOException {}<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span><a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>  /**<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>   * Called after new LockProcedure is queued.<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>   * @param ctx the environment to interact with the framework and master<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>   */<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  default void postRequestLock(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace,<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>      TableName tableName, RegionInfo[] regionInfos, String description) throws IOException {}<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span><a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>  /**<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>   * Called before heartbeat to a lock.<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>   * @param ctx the environment to interact with the framework and master<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span>   */<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>  default void preLockHeartbeat(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      TableName tn, String description) throws IOException {}<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span><a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>  /**<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span>   * Called after heartbeat to a lock.<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>   * @param ctx the environment to interact with the framework and master<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>   */<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>  default void postLockHeartbeat(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>      throws IOException {}<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span><a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>  /**<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>   * Called before get cluster status.<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>   */<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>  default void preGetClusterStatus(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>      throws IOException {}<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span><a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>  /**<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>   * Called after get cluster status.<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span>   */<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  default void postGetClusterStatus(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>      ClusterStatus status) throws IOException {}<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span><a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>  /**<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>   * Called before clear dead region servers.<a name="line.1258"></a>
+<span class="sourceLineNo">1206</span>  default void preUpdateReplicationPeerConfig(<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String peerId,<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>      ReplicationPeerConfig peerConfig) throws IOException {}<a name="line.1208"></a>
+<span class="sourceLineNo">1209</span><a name="line.1209"></a>
+<span class="sourceLineNo">1210</span>  /**<a name="line.1210"></a>
+<span class="sourceLineNo">1211</span>   * Called after update peerConfig for the specified peer<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>   * @param ctx the environment to interact with the framework and master<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>   * @param peerId a short name that identifies the peer<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>   */<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>  default void postUpdateReplicationPeerConfig(<a name="line.1215"></a>
+<span class="sourceLineNo">1216</span>      final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String peerId,<a name="line.1216"></a>
+<span class="sourceLineNo">1217</span>      ReplicationPeerConfig peerConfig) throws IOException {}<a name="line.1217"></a>
+<span class="sourceLineNo">1218</span><a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>  /**<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>   * Called before list replication peers.<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>   * @param ctx the environment to interact with the framework and master<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>   * @param regex The regular expression to match peer id<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>   */<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>  default void preListReplicationPeers(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>      String regex) throws IOException {}<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span><a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>  /**<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>   * Called after list replication peers.<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>   * @param ctx the environment to interact with the framework and master<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>   * @param regex The regular expression to match peer id<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>   */<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  default void postListReplicationPeers(final ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span>      String regex) throws IOException {}<a name="line.1233"></a>
+<span class="sourceLineNo">1234</span><a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>  /**<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>   * Called before new LockProcedure is queued.<a name="line.1236"></a>
+<span class="sourceLineNo">1237</span>   * @param ctx the environment to interact with the framework and master<a name="line.1237"></a>
+<span class="sourceLineNo">1238</span>   */<a name="line.1238"></a>
+<span class="sourceLineNo">1239</span>  default void preRequestLock(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace,<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>      TableName tableName, RegionInfo[] regionInfos, String description) throws IOException {}<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span><a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>  /**<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>   * Called after new LockProcedure is queued.<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>   * @param ctx the environment to interact with the framework and master<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>   */<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>  default void postRequestLock(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx, String namespace,<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>      TableName tableName, RegionInfo[] regionInfos, String description) throws IOException {}<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span><a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>  /**<a name="line.1249"></a>
+<span class="sourceLineNo">1250</span>   * Called before heartbeat to a lock.<a name="line.1250"></a>
+<span class="sourceLineNo">1251</span>   * @param ctx the environment to interact with the framework and master<a name="line.1251"></a>
+<span class="sourceLineNo">1252</span>   */<a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  default void preLockHeartbeat(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>      TableName tn, String description) throws IOException {}<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span><a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>  /**<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>   * Called after heartbeat to a lock.<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span>   * @param ctx the environment to interact with the framework and master<a name="line.1258"></a>
 <span class="sourceLineNo">1259</span>   */<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  default void preClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1260"></a>
+<span class="sourceLineNo">1260</span>  default void postLockHeartbeat(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1260"></a>
 <span class="sourceLineNo">1261</span>      throws IOException {}<a name="line.1261"></a>
 <span class="sourceLineNo">1262</span><a name="line.1262"></a>
 <span class="sourceLineNo">1263</span>  /**<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>   * Called after clear dead region servers.<a name="line.1264"></a>
+<span class="sourceLineNo">1264</span>   * Called before get cluster status.<a name="line.1264"></a>
 <span class="sourceLineNo">1265</span>   */<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>  default void postClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>      List&lt;ServerName&gt; servers, List&lt;ServerName&gt; notClearedServers)<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span>      throws IOException {}<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span><a name="line.1269"></a>
-<span class="sourceLineNo">1270</span>  /**<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>   * Called before decommission region servers.<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span>   */<a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>  default void preDecommissionRegionServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      List&lt;ServerName&gt; servers, boolean offload) throws IOException {}<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span><a name="line.1275"></a>
-<span class="sourceLineNo">1276</span>  /**<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span>   * Called after decommission region servers.<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>   */<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>  default void postDecommissionRegionServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span>      List&lt;ServerName&gt; servers, boolean offload) throws IOException {}<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span><a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  /**<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span>   * Called before list decommissioned region servers.<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>   */<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  default void preListDecommissionedRegionServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1285"></a>
+<span class="sourceLineNo">1266</span>  default void preGetClusterStatus(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>      throws IOException {}<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  /**<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>   * Called after get cluster status.<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span>   */<a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>  default void postGetClusterStatus(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      ClusterStatus status) throws IOException {}<a name="line.1273"></a>
+<span class="sourceLineNo">1274</span><a name="line.1274"></a>
+<span class="sourceLineNo">1275</span>  /**<a name="line.1275"></a>
+<span class="sourceLineNo">1276</span>   * Called before clear dead region servers.<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>   */<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>  default void preClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span>      throws IOException {}<a name="line.1279"></a>
+<span class="sourceLineNo">1280</span><a name="line.1280"></a>
+<span class="sourceLineNo">1281</span>  /**<a name="line.1281"></a>
+<span class="sourceLineNo">1282</span>   * Called after clear dead region servers.<a name="line.1282"></a>
+<span class="sourceLineNo">1283</span>   */<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  default void postClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>      List&lt;ServerName&gt; servers, List&lt;ServerName&gt; notClearedServers)<a name="line.1285"></a>
 <span class="sourceLineNo">1286</span>      throws IOException {}<a name="line.1286"></a>
 <span class="sourceLineNo">1287</span><a name="line.1287"></a>
 <span class="sourceLineNo">1288</span>  /**<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span>   * Called after list decommissioned region servers.<a name="line.1289"></a>
+<span class="sourceLineNo">1289</span>   * Called before decommission region servers.<a name="line.1289"></a>
 <span class="sourceLineNo">1290</span>   */<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>  default void postListDecommissionedRegionServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>      throws IOException {}<a name="line.1292"></a>
+<span class="sourceLineNo">1291</span>  default void preDecommissionRegionServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span>      List&lt;ServerName&gt; servers, boolean offload) throws IOException {}<a name="line.1292"></a>
 <span class="sourceLineNo">1293</span><a name="line.1293"></a>
 <span class="sourceLineNo">1294</span>  /**<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>   * Called before recommission region server.<a name="line.1295"></a>
+<span class="sourceLineNo">1295</span>   * Called after decommission region servers.<a name="line.1295"></a>
 <span class="sourceLineNo">1296</span>   */<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  default void preRecommissionRegionServer(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span>      ServerName server, List&lt;byte[]&gt; encodedRegionNames) throws IOException {}<a name="line.1298"></a>
+<span class="sourceLineNo">1297</span>  default void postDecommissionRegionServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>      List&lt;ServerName&gt; servers, boolean offload) throws IOException {}<a name="line.1298"></a>
 <span class="sourceLineNo">1299</span><a name="line.1299"></a>
 <span class="sourceLineNo">1300</span>  /**<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>   * Called after recommission region server.<a name="line.1301"></a>
+<span class="sourceLineNo">1301</span>   * Called before list decommissioned region servers.<a name="line.1301"></a>
 <span class="sourceLineNo">1302</span>   */<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span>  default void postRecommissionRegionServer(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>      ServerName server, List&lt;byte[]&gt; encodedRegionNames) throws IOException {}<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>}<a name="line.1305"></a>
+<span class="sourceLineNo">1303</span>  default void preListDecommissionedRegionServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>      throws IOException {}<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span><a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  /**<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span>   * Called after list decommissioned region servers.<a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>   */<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>  default void postListDecommissionedRegionServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx)<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>      throws IOException {}<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span><a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>  /**<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>   * Called before recommission region server.<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>   */<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>  default void preRecommissionRegionServer(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>      ServerName server, List&lt;byte[]&gt; encodedRegionNames) throws IOException {}<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span><a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>  /**<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>   * Called after recommission region server.<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>   */<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>  default void postRecommissionRegionServer(ObserverContext&lt;MasterCoprocessorEnvironment&gt; ctx,<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>      ServerName server, List&lt;byte[]&gt; encodedRegionNames) throws IOException {}<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>}<a name="line.1323"></a>
 
 
 


[11/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index b53e7e9..76a7990 100644
--- a/replication.html
+++ b/replication.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -308,7 +308,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 1954935..7521c21 100644
--- a/resources.html
+++ b/resources.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index ce3254b..6f47d89 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -304,7 +304,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index 043f762..fac3f39 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase™ Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -338,7 +338,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 95a0d56..bef9399 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -525,7 +525,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index ea8e529..85f045c 100644
--- a/team-list.html
+++ b/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -717,7 +717,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index f30d47f..33c82ff 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -28751,6 +28751,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html#removeRSGroup-java.lang.String-">removeRSGroup(String)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html" title="class in org.apache.hadoop.hbase.rsgroup">VerifyingRSGroupAdminClient</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html#removeServers-java.util.Set-">removeServers(Set&lt;Address&gt;)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.html" title="class in org.apache.hadoop.hbase.rsgroup">VerifyingRSGroupAdminClient</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestCompactionArchiveConcurrentClose.WaitingHRegionFileSystem.html#removeStoreFiles-java.lang.String-java.util.Collection-">removeStoreFiles(String, Collection&lt;HStoreFile&gt;)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestCompactionArchiveConcurrentClose.WaitingHRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">TestCompactionArchiveConcurrentClose.WaitingHRegionFileSystem</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/compactions/TestPartitionedMobCompactor.FaultyDistributedFileSystem.html#rename-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-">rename(Path, Path)</a></span> - Method in class org.apache.hadoop.hbase.mob.compactions.<a href="org/apache/hadoop/hbase/mob/compactions/TestPartitionedMobCompactor.FaultyDistributedFileSystem.html" title="class in org.apache.hadoop.hbase.mob.compactions">TestPartitionedMobCompactor.FaultyDistributedFileSystem</a></dt>
@@ -41562,6 +41564,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/TestDeadServer.html#testClearDeadServer--">testClearDeadServer()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestDeadServer.html" title="class in org.apache.hadoop.hbase.master">TestDeadServer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testClearDeadServers--">testClearDeadServers()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestStripeStoreFileManager.html#testClearFiles--">testClearFiles()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestStripeStoreFileManager.html" title="class in org.apache.hadoop.hbase.regionserver">TestStripeStoreFileManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/TestClearRegionBlockCache.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestClearRegionBlockCache</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
@@ -52867,6 +52871,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html#testRemovesEmptyDirectories--">testRemovesEmptyDirectories()</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/TestHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">TestHFileCleaner</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html#testRemoveServers--">testRemoveServers()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.html" title="class in org.apache.hadoop.hbase.rsgroup">TestRSGroupsBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/TestHFileArchiving.html#testRemovesRegionDirOnArchive--">testRemovesRegionDirOnArchive()</a></span> - Method in class org.apache.hadoop.hbase.backup.<a href="org/apache/hadoop/hbase/backup/TestHFileArchiving.html" title="class in org.apache.hadoop.hbase.backup">TestHFileArchiving</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html#testRemoveString--">testRemoveString()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TestTableDescriptorBuilder</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html b/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
index 4bb7052..d3a8c5c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestJMXConnectorServer.MyAccessController.html
@@ -214,7 +214,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.security.access.AccessController</h3>
-<code>checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, isAuthorizationSupported, isCellAuthorizationSupported, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postSetSplitOrMergeEnabled, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preCleanupBulkLoad, preClearC
 ompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExists, preFlush, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest, preScannerClose, preScannerNext, preScannerOpen,
  preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preSnapshot, preSplitRegion, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireNamespacePermission, requireNamespacePermission, revoke, start, stop</code></li>
+<code>checkPermissions, getAuthManager, getBulkLoadObserver, getEndpointObserver, getMasterObserver, getRegion, getRegionObserver, getRegionServerObserver, getServices, getUserPermissions, grant, isAuthorizationSupported, isCellAuthorizationSupported, postAbortProcedure, postCompletedCreateTableAction, postCreateReplicationEndPoint, postDelete, postDeleteNamespace, postDeleteTable, postEndpointInvocation, postGetTableDescriptors, postGetTableNames, postListNamespaceDescriptors, postModifyTable, postMutationBeforeWAL, postOpen, postPut, postRollWALWriterRequest, postScannerClose, postScannerFilterRow, postScannerOpen, postSetSplitOrMergeEnabled, postStartMaster, postTruncateTable, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAppend, preAppendAfterRowLock, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preCleanupBulkLoad, preClearC
 ompactionQueues, preClearDeadServers, preCloneSnapshot, preClose, preCompact, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDelete, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDisableReplicationPeer, preDisableTable, preEnableReplicationPeer, preEnableTable, preEndpointInvocation, preExists, preFlush, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetOp, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preIncrement, preIncrementAfterRowLock, preListDecommissionedRegionServers, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMergeRegions, preModifyNamespace, preModifyTable, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preOpen, prePrepareBulkLoad, prePut, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preReplicateLogEntries, preRequestLock, preRestoreSnapshot, preRollWALWriterRequest, preScannerClose, preScannerNex
 t, preScannerOpen, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preSnapshot, preSplitRegion, preTableFlush, preTruncateTable, preUnassign, preUpdateReplicationPeerConfig, requireNamespacePermission, requireNamespacePermission, revoke, start, stop</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -228,7 +228,7 @@ extends org.apache.hadoop.hbase.security.access.AccessController</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRS
 Group, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyTableAction, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
+<code>postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteSnapshot, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRS
 Group, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postUnassign, postUpdateReplicationPeerConfig, preCreateTableAction, preDeleteTableAction, preDisableTableAction, preEnableTableAction, preGetTableNames, preListNamespaceDescriptors, preMasterInitialization, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyTableAction, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preTruncateTableAction</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.MasterSnapshotObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.MasterSnapshotObserver.html b/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.MasterSnapshotObserver.html
index deeda5f..fddeacc 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.MasterSnapshotObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.MasterSnapshotObserver.html
@@ -240,7 +240,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTab
 le, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDescripto
 r, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTab
 le, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGe
 tNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index 1f4569c..7651965 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -142,8 +142,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestMaxRetriesCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestMaxRetriesCoprocessor.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestMaxRetriesCoprocessor.html
index 01c5079..cd54436 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestMaxRetriesCoprocessor.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestMaxRetriesCoprocessor.html
@@ -225,7 +225,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus
 , preGetLocks, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, 
 preGetClusterStatus, preGetLocks, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestOperationTimeoutCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestOperationTimeoutCoprocessor.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestOperationTimeoutCoprocessor.html
index cdbf2a1..b83f041 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestOperationTimeoutCoprocessor.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestOperationTimeoutCoprocessor.html
@@ -225,7 +225,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus
 , preGetLocks, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, 
 preGetClusterStatus, preGetLocks, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestRpcTimeoutCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestRpcTimeoutCoprocessor.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestRpcTimeoutCoprocessor.html
index 8e7d7f2..b3b9d4f 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestRpcTimeoutCoprocessor.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestRpcTimeoutCoprocessor.html
@@ -214,7 +214,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus
 , preGetLocks, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, 
 preGetClusterStatus, preGetLocks, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/client/TestClientClusterStatus.MyObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientClusterStatus.MyObserver.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientClusterStatus.MyObserver.html
index 380689c..e4d3199 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientClusterStatus.MyObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientClusterStatus.MyObserver.html
@@ -233,7 +233,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTable
 , postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetLocks, preGetNamespaceDescriptor, p
 reGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTable
 , postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetLocks, preGetNam
 espaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/client/TestEnableTable.MasterSyncObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestEnableTable.MasterSyncObserver.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestEnableTable.MasterSyncObserver.html
index fda9db2..e7454d5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestEnableTable.MasterSyncObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestEnableTable.MasterSyncObserver.html
@@ -235,7 +235,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServe
 rsAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preG
 etReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTable, postMove, postMoveServers, postMoveServe
 rsAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, pre
 GetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html
index ce5a9f6..9e0152d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.175">TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.174">TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver</pre>
 <div class="block">This copro is used to slow down the primary meta region scan a bit</div>
@@ -272,7 +272,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockList">
 <li class="blockList">
 <h4>slowDownPrimaryMetaScan</h4>
-<pre>static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.177">slowDownPrimaryMetaScan</a></pre>
+<pre>static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.176">slowDownPrimaryMetaScan</a></pre>
 </li>
 </ul>
 <a name="throwException">
@@ -281,7 +281,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockListLast">
 <li class="blockList">
 <h4>throwException</h4>
-<pre>static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.178">throwException</a></pre>
+<pre>static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.177">throwException</a></pre>
 </li>
 </ul>
 </li>
@@ -298,7 +298,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionServerHostingPrimayMetaRegionSlowOrStopCopro</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.175">RegionServerHostingPrimayMetaRegionSlowOrStopCopro</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.174">RegionServerHostingPrimayMetaRegionSlowOrStopCopro</a>()</pre>
 </li>
 </ul>
 </li>
@@ -315,7 +315,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionObserver</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.181">getRegionObserver</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.180">getRegionObserver</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getRegionObserver</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.RegionCoprocessor</code></dd>
@@ -328,7 +328,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockList">
 <li class="blockList">
 <h4>preGetOp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.186">preGetOp</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.185">preGetOp</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
                      org.apache.hadoop.hbase.client.Get&nbsp;get,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.Cell&gt;&nbsp;results)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -346,7 +346,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockListLast">
 <li class="blockList">
 <h4>preScannerOpen</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.206">preScannerOpen</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerHostingPrimayMetaRegionSlowOrStopCopro.html#line.204">preScannerOpen</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
                            org.apache.hadoop.hbase.client.Scan&nbsp;scan)
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html
index 8579487..414cb46 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.131">TestReplicaWithCluster.RegionServerStoppedCopro</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.130">TestReplicaWithCluster.RegionServerStoppedCopro</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver</pre>
 <div class="block">This copro is used to simulate region server down exception for Get and Scan</div>
@@ -257,7 +257,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionServerStoppedCopro</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html#line.133">RegionServerStoppedCopro</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html#line.132">RegionServerStoppedCopro</a>()</pre>
 </li>
 </ul>
 </li>
@@ -274,7 +274,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionObserver</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html#line.137">getRegionObserver</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html#line.136">getRegionObserver</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getRegionObserver</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.RegionCoprocessor</code></dd>
@@ -287,7 +287,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockList">
 <li class="blockList">
 <h4>preGetOp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html#line.142">preGetOp</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html#line.141">preGetOp</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
                      org.apache.hadoop.hbase.client.Get&nbsp;get,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.Cell&gt;&nbsp;results)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -305,7 +305,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockListLast">
 <li class="blockList">
 <h4>preScannerOpen</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html#line.158">preScannerOpen</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.RegionServerStoppedCopro.html#line.157">preScannerOpen</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
                            org.apache.hadoop.hbase.client.Scan&nbsp;scan)
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html
index 6da0027..a4261e1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.89">TestReplicaWithCluster.SlowMeCopro</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.88">TestReplicaWithCluster.SlowMeCopro</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver</pre>
 <div class="block">This copro is used to synchronize the tests.</div>
@@ -267,7 +267,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockList">
 <li class="blockList">
 <h4>sleepTime</h4>
-<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html#line.90">sleepTime</a></pre>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html#line.89">sleepTime</a></pre>
 </li>
 </ul>
 <a name="cdl">
@@ -276,7 +276,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockListLast">
 <li class="blockList">
 <h4>cdl</h4>
-<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html#line.91">cdl</a></pre>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html#line.90">cdl</a></pre>
 </li>
 </ul>
 </li>
@@ -293,7 +293,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SlowMeCopro</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html#line.93">SlowMeCopro</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html#line.92">SlowMeCopro</a>()</pre>
 </li>
 </ul>
 </li>
@@ -310,7 +310,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionObserver</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html#line.97">getRegionObserver</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html#line.96">getRegionObserver</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getRegionObserver</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.RegionCoprocessor</code></dd>
@@ -323,7 +323,7 @@ implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.had
 <ul class="blockListLast">
 <li class="blockList">
 <h4>preGetOp</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html#line.102">preGetOp</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.SlowMeCopro.html#line.101">preGetOp</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
                      org.apache.hadoop.hbase.client.Get&nbsp;get,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.Cell&gt;&nbsp;results)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>


[18/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
index 775301c..0c071a7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
@@ -317,602 +317,628 @@
 <span class="sourceLineNo">309</span>    flushConfig(newGroupMap);<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.315"></a>
-<span class="sourceLineNo">316</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    return rsGroupInfoList;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    //Overwrite any info stored by table, this takes precedence<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    try {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>          byte[] data = ZKUtil.getData(watcher, ZNodePaths.joinZNode(groupBasePath, znode));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          if(data.length &gt; 0) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.332"></a>
-<span class="sourceLineNo">333</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.334"></a>
-<span class="sourceLineNo">335</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.335"></a>
-<span class="sourceLineNo">336</span>          }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    }<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    return RSGroupInfoList;<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  @Override<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  public void refresh() throws IOException {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    refresh(false);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  /**<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * Update zk cache. Called on startup of the manager.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   */<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    // if online read from GROUP table<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    if (forceOnline || isOnline()) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      LOG.debug("Refreshing in Online mode.");<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      if (rsGroupTable == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    } else {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>    // refresh default group, prune<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public synchronized void removeServers(Set&lt;Address&gt; servers) throws IOException {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    Map&lt;String, RSGroupInfo&gt; rsGroupInfos = new HashMap&lt;String, RSGroupInfo&gt;();<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    for (Address el: servers) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      RSGroupInfo rsGroupInfo = getRSGroupOfServer(el);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      if (rsGroupInfo != null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        RSGroupInfo newRsGroupInfo = rsGroupInfos.get(rsGroupInfo.getName());<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        if (newRsGroupInfo == null) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          rsGroupInfo.removeServer(el);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          rsGroupInfos.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        } else {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          newRsGroupInfo.removeServer(el);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          rsGroupInfos.put(newRsGroupInfo.getName(), newRsGroupInfo);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      }else {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        LOG.warn("Server " + el + " does not belong to any rsgroup.");<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>    if (rsGroupInfos.size() &gt; 0) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      newGroupMap.putAll(rsGroupInfos);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      flushConfig(newGroupMap);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.341"></a>
+<span class="sourceLineNo">342</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    }<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    return rsGroupInfoList;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    //Overwrite any info stored by table, this takes precedence<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          byte[] data = ZKUtil.getData(watcher, ZNodePaths.joinZNode(groupBasePath, znode));<a name="line.355"></a>
+<span class="sourceLineNo">356</span>          if(data.length &gt; 0) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.361"></a>
+<span class="sourceLineNo">362</span>          }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    return RSGroupInfoList;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span>  @Override<a name="line.372"></a>
+<span class="sourceLineNo">373</span>  public void refresh() throws IOException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    refresh(false);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
 <span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    final List&lt;TableName&gt; specialTables;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    if(!masterServices.isInitialized()) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.379"></a>
-<span class="sourceLineNo">380</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    } else {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      specialTables =<a name="line.382"></a>
-<span class="sourceLineNo">383</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    for (TableName table : specialTables) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      orphanTables.add(table);<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    for (RSGroupInfo group: groupList) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        orphanTables.removeAll(group.getTables());<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    // from region group table or zk<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        orphanTables));<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    // populate the data<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    for (RSGroupInfo group : groupList) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      newGroupMap.put(group.getName(), group);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      for(TableName table: group.getTables()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>        newTableMap.put(table, group.getName());<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      }<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      throws IOException {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    // populate deletes<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    for(String groupName : prevRSGroups) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      if(!groupMap.containsKey(groupName)) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        mutations.add(d);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
+<span class="sourceLineNo">377</span>  /**<a name="line.377"></a>
+<span class="sourceLineNo">378</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.378"></a>
+<span class="sourceLineNo">379</span>   * Update zk cache. Called on startup of the manager.<a name="line.379"></a>
+<span class="sourceLineNo">380</span>   */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    // if online read from GROUP table<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    if (forceOnline || isOnline()) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      LOG.debug("Refreshing in Online mode.");<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      if (rsGroupTable == null) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    } else {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.393"></a>
+<span class="sourceLineNo">394</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>    // refresh default group, prune<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>    final List&lt;TableName&gt; specialTables;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    if(!masterServices.isInitialized()) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    } else {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      specialTables =<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    for (TableName table : specialTables) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      orphanTables.add(table);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    for (RSGroupInfo group: groupList) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        orphanTables.removeAll(group.getTables());<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    // from region group table or zk<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        orphanTables));<a name="line.424"></a>
 <span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    // populate puts<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      mutations.add(p);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      }<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span>    if(mutations.size() &gt; 0) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      multiMutate(mutations);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    return newTableMap;<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>  private synchronized void flushConfig()<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  throws IOException {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    flushConfig(this.rsGroupMap);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  throws IOException {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.450"></a>
+<span class="sourceLineNo">426</span>    // populate the data<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    for (RSGroupInfo group : groupList) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      newGroupMap.put(group.getName(), group);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      for(TableName table: group.getTables()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        newTableMap.put(table, group.getName());<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      throws IOException {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>    // populate deletes<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    for(String groupName : prevRSGroups) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      if(!groupMap.containsKey(groupName)) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        mutations.add(d);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
 <span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    // For offline mode persistence is still unavailable<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    // We're refreshing in-memory state but only for default servers<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    if (!isOnline()) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      if (!m.equals(newGroupMap) ||<a name="line.458"></a>
-<span class="sourceLineNo">459</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      }<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      rsGroupMap = newGroupMap;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      return;<a name="line.464"></a>
+<span class="sourceLineNo">452</span>    // populate puts<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      mutations.add(p);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      }<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>    if(mutations.size() &gt; 0) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      multiMutate(mutations);<a name="line.464"></a>
 <span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.467"></a>
+<span class="sourceLineNo">466</span>    return newTableMap;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>  }<a name="line.467"></a>
 <span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // Make changes visible after having been persisted to the source of truth<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      for(String groupName : prevRSGroups) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          String znode = ZNodePaths.joinZNode(groupBasePath, groupName);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        String znode = ZNodePaths.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        LOG.debug("Updating znode: "+znode);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    } catch (KeeperException e) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  /**<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * Make changes visible.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   * Caller must be synchronized on 'this'.<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   */<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // Make maps Immutable.<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  /**<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * Update cache of rsgroups.<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * Caller must be synchronized on 'this'.<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @param currentGroups Current list of Groups.<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
-<span class="sourceLineNo">521</span>  private void updateCacheOfRSGroups(final Set&lt;String&gt; currentGroups) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    this.prevRSGroups.clear();<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    this.prevRSGroups.addAll(currentGroups);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>  // Called by getDefaultServers. Presume it has lock in place.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  private List&lt;ServerName&gt; getOnlineRS() throws IOException {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    if (masterServices != null) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      return masterServices.getServerManager().getOnlineServersList();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    LOG.debug("Reading online RS from zookeeper");<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    List&lt;ServerName&gt; servers = new LinkedList&lt;&gt;();<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    try {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      for (String el: ZKUtil.listChildrenNoWatch(watcher, watcher.znodePaths.rsZNode)) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        servers.add(ServerName.parseServerName(el));<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      }<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    } catch (KeeperException e) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      throw new IOException("Failed to retrieve server list from zookeeper", e);<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    }<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    return servers;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>  // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  private SortedSet&lt;Address&gt; getDefaultServers() throws IOException {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    SortedSet&lt;Address&gt; defaultServers = Sets.newTreeSet();<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    for (ServerName serverName : getOnlineRS()) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      Address server =<a name="line.547"></a>
-<span class="sourceLineNo">548</span>          Address.fromParts(serverName.getHostname(), serverName.getPort());<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      boolean found = false;<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      for(RSGroupInfo rsgi: listRSGroups()) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        if(!RSGroupInfo.DEFAULT_GROUP.equals(rsgi.getName()) &amp;&amp;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>            rsgi.containsServer(server)) {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>          found = true;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>          break;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      }<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      if (!found) {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>        defaultServers.add(server);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>      }<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    return defaultServers;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // Called by ServerEventsListenerThread. Synchronize on this because redoing<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  // the rsGroupMap then writing it out.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  private synchronized void updateDefaultServers(SortedSet&lt;Address&gt; servers) throws IOException {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    RSGroupInfo info = rsGroupMap.get(RSGroupInfo.DEFAULT_GROUP);<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    RSGroupInfo newInfo = new RSGroupInfo(info.getName(), servers, info.getTables());<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    newGroupMap.put(newInfo.getName(), newInfo);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    flushConfig(newGroupMap);<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>  // Called by FailedOpenUpdaterThread<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  private void updateFailedAssignments() {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    // Kick all regions in FAILED_OPEN state<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    List&lt;RegionInfo&gt; stuckAssignments = Lists.newArrayList();<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    for (RegionStateNode state:<a name="line.578"></a>
-<span class="sourceLineNo">579</span>        masterServices.getAssignmentManager().getRegionStates().getRegionsInTransition()) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      if (state.isStuck()) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        stuckAssignments.add(state.getRegionInfo());<a name="line.581"></a>
+<span class="sourceLineNo">469</span>  private synchronized void flushConfig()<a name="line.469"></a>
+<span class="sourceLineNo">470</span>  throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    flushConfig(this.rsGroupMap);<a name="line.471"></a>
+<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  throws IOException {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>    // For offline mode persistence is still unavailable<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    // We're refreshing in-memory state but only for default servers<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    if (!isOnline()) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.482"></a>
+<span class="sourceLineNo">483</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      if (!m.equals(newGroupMap) ||<a name="line.484"></a>
+<span class="sourceLineNo">485</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      rsGroupMap = newGroupMap;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>      return;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    }<a name="line.491"></a>
+<span class="sourceLineNo">492</span><a name="line.492"></a>
+<span class="sourceLineNo">493</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>    // Make changes visible after having been persisted to the source of truth<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>    try {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.500"></a>
+<span class="sourceLineNo">501</span><a name="line.501"></a>
+<span class="sourceLineNo">502</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      for(String groupName : prevRSGroups) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>          String znode = ZNodePaths.joinZNode(groupBasePath, groupName);<a name="line.505"></a>
+<span class="sourceLineNo">506</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        }<a name="line.507"></a>
+<span class="sourceLineNo">508</span>      }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        String znode = ZNodePaths.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        LOG.debug("Updating znode: "+znode);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.517"></a>
+<span class="sourceLineNo">518</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      }<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    } catch (KeeperException e) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    }<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>  /**<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   * Make changes visible.<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   * Caller must be synchronized on 'this'.<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   */<a name="line.534"></a>
+<span class="sourceLineNo">535</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    // Make maps Immutable.<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.539"></a>
+<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * Update cache of rsgroups.<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * Caller must be synchronized on 'this'.<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * @param currentGroups Current list of Groups.<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>  private void updateCacheOfRSGroups(final Set&lt;String&gt; currentGroups) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    this.prevRSGroups.clear();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    this.prevRSGroups.addAll(currentGroups);<a name="line.549"></a>
+<span class="sourceLineNo">550</span>  }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>  // Called by getDefaultServers. Presume it has lock in place.<a name="line.552"></a>
+<span class="sourceLineNo">553</span>  private List&lt;ServerName&gt; getOnlineRS() throws IOException {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    if (masterServices != null) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      return masterServices.getServerManager().getOnlineServersList();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    }<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    LOG.debug("Reading online RS from zookeeper");<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    List&lt;ServerName&gt; servers = new LinkedList&lt;&gt;();<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    try {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      for (String el: ZKUtil.listChildrenNoWatch(watcher, watcher.znodePaths.rsZNode)) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>        servers.add(ServerName.parseServerName(el));<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    } catch (KeeperException e) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      throw new IOException("Failed to retrieve server list from zookeeper", e);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    return servers;<a name="line.566"></a>
+<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>  // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs.<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  private SortedSet&lt;Address&gt; getDefaultServers() throws IOException {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    SortedSet&lt;Address&gt; defaultServers = Sets.newTreeSet();<a name="line.571"></a>
+<span class="sourceLineNo">572</span>    for (ServerName serverName : getOnlineRS()) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      Address server =<a name="line.573"></a>
+<span class="sourceLineNo">574</span>          Address.fromParts(serverName.getHostname(), serverName.getPort());<a name="line.574"></a>
+<span class="sourceLineNo">575</span>      boolean found = false;<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      for(RSGroupInfo rsgi: listRSGroups()) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        if(!RSGroupInfo.DEFAULT_GROUP.equals(rsgi.getName()) &amp;&amp;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>            rsgi.containsServer(server)) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>          found = true;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>          break;<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        }<a name="line.581"></a>
 <span class="sourceLineNo">582</span>      }<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    }<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    for (RegionInfo region: stuckAssignments) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      LOG.info("Retrying assignment of " + region);<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      try {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        masterServices.getAssignmentManager().unassign(region);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      } catch (IOException e) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>        LOG.warn("Unable to reassign " + region, e);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>  /**<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * Calls {@link RSGroupInfoManagerImpl#updateDefaultServers(SortedSet)} to update list of known<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * servers. Notifications about server changes are received by registering {@link ServerListener}.<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * As a listener, we need to return immediately, so the real work of updating the servers is<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * done asynchronously in this thread.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  private class ServerEventsListenerThread extends Thread implements ServerListener {<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    private final Log LOG = LogFactory.getLog(ServerEventsListenerThread.class);<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    private boolean changed = false;<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span>    ServerEventsListenerThread() {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>      setDaemon(true);<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    }<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>    @Override<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    public void serverAdded(ServerName serverName) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      serverChanged();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    }<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    @Override<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    public void serverRemoved(ServerName serverName) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      serverChanged();<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>    private synchronized void serverChanged() {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      changed = true;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      this.notify();<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>    @Override<a name="line.623"></a>
-<span class="sourceLineNo">624</span>    public void run() {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      setName(ServerEventsListenerThread.class.getName() + "-" + masterServices.getServerName());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      SortedSet&lt;Address&gt; prevDefaultServers = new TreeSet&lt;&gt;();<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      while(isMasterRunning(masterServices)) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        try {<a name="line.628"></a>
-<span class="sourceLineNo">629</span>          LOG.info("Updating default servers.");<a name="line.629"></a>
-<span class="sourceLineNo">630</span>          SortedSet&lt;Address&gt; servers = RSGroupInfoManagerImpl.this.getDefaultServers();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>          if (!servers.equals(prevDefaultServers)) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>            RSGroupInfoManagerImpl.this.updateDefaultServers(servers);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>            prevDefaultServers = servers;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>            LOG.info("Updated with servers: "+servers.size());<a name="line.634"></a>
-<span class="sourceLineNo">635</span>          }<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          try {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>            synchronized (this) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>              while (!changed) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>                wait();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>              }<a name="line.640"></a>
-<span class="sourceLineNo">641</span>              changed = false;<a name="line.641"></a>
-<span class="sourceLineNo">642</span>            }<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          } catch (InterruptedException e) {<a name="line.643"></a>
-<span class="sourceLineNo">644</span>            LOG.warn("Interrupted", e);<a name="line.644"></a>
-<span class="sourceLineNo">645</span>          }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>        } catch (IOException e) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          LOG.warn("Failed to update default servers", e);<a name="line.647"></a>
-<span class="sourceLineNo">648</span>        }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    }<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>  private class FailedOpenUpdaterThread extends Thread implements ServerListener {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    private final long waitInterval;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    private volatile boolean hasChanged = false;<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>    public FailedOpenUpdaterThread(Configuration conf) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>      this.waitInterval = conf.getLong(REASSIGN_WAIT_INTERVAL_KEY,<a name="line.658"></a>
-<span class="sourceLineNo">659</span>        DEFAULT_REASSIGN_WAIT_INTERVAL);<a name="line.659"></a>
-<span class="sourceLineNo">660</span>      setDaemon(true);<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    }<a name="line.661"></a>
-<span class="sourceLineNo">662</span><a name="line.662"></a>
-<span class="sourceLineNo">663</span>    @Override<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    public void serverAdded(ServerName serverName) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      serverChanged();<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>    @Override<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    public void serverRemoved(ServerName serverName) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    }<a name="line.670"></a>
-<span class="sourceLineNo">671</span><a name="line.671"></a>
-<span class="sourceLineNo">672</span>    @Override<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    public void run() {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>      while (isMasterRunning(masterServices)) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        boolean interrupted = false;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        try {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          synchronized (this) {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>            while (!hasChanged) {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>              wait();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>            }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>            hasChanged = false;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>          }<a name="line.682"></a>
-<span class="sourceLineNo">683</span>        } catch (InterruptedException e) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          LOG.warn("Interrupted", e);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          interrupted = true;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>        }<a name="line.686"></a>
-<span class="sourceLineNo">687</span>        if (!isMasterRunning(masterServices) || interrupted) {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>          continue;<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        }<a name="line.689"></a>
-<span class="sourceLineNo">690</span><a name="line.690"></a>
-<span class="sourceLineNo">691</span>        // First, wait a while in case more servers are about to rejoin the cluster<a name="line.691"></a>
-<span class="sourceLineNo">692</span>        try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>          Thread.sleep(waitInterval);<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        } catch (InterruptedException e) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          LOG.warn("Interrupted", e);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        if (!isMasterRunning(masterServices)) {<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          continue;<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        }<a name="line.699"></a>
-<span class="sourceLineNo">700</span><a name="line.700"></a>
-<span class="sourceLineNo">701</span>        // Kick all regions in FAILED_OPEN state<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        updateFailedAssignments();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>    public void serverChanged() {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      synchronized (this) {<a name="line.707"></a>
-<span class="sourceLineNo">708</span>        hasChanged = true;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        this.notify();<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  private class RSGroupStartupWorker extends Thread {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    private final Log LOG = LogFactory.getLog(RSGroupStartupWorker.class);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    private volatile boolean online = false;<a name="line.716"></a>
-<span class="sourceLineNo">717</span><a name="line.717"></a>
-<span class="sourceLineNo">718</span>    RSGroupStartupWorker() {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      setDaemon(true);<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    }<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    @Override<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    public void run() {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      setName(RSGroupStartupWorker.class.getName() + "-" + masterServices.getServerName());<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      if (waitForGroupTableOnline()) {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        LOG.info("GroupBasedLoadBalancer is now online");<a name="line.726"></a>
-<span class="sourceLineNo">727</span>      }<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    }<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>    private boolean waitForGroupTableOnline() {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final List&lt;RegionInfo&gt; foundRegions = new LinkedList&lt;&gt;();<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      final List&lt;RegionInfo&gt; assignedRegions = new LinkedList&lt;&gt;();<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      final AtomicBoolean found = new AtomicBoolean(false);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      final TableStateManager tsm = masterServices.getTableStateManager();<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      boolean createSent = false;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      while (!found.get() &amp;&amp; isMasterRunning(masterServices)) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>        foundRegions.clear();<a name="line.737"></a>
-<span class="sourceLineNo">738</span>        assignedRegions.clear();<a name="line.738"></a>
-<span class="sourceLineNo">739</span>        found.set(true);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>        try {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>          conn.getTable(TableName.NAMESPACE_TABLE_NAME);<a name="line.741"></a>
-<span class="sourceLineNo">742</span>          conn.getTable(RSGROUP_TABLE_NAME);<a name="line.742"></a>
-<span class="sourceLineNo">743</span>          boolean rootMetaFound =<a name="line.743"></a>
-<span class="sourceLineNo">744</span>              masterServices.getMetaTableLocator().verifyMetaRegionLocation(<a name="line.744"></a>
-<span class="sourceLineNo">745</span>                  conn, masterServices.getZooKeeper(), 1);<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          final AtomicBoolean nsFound = new AtomicBoolean(false);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>          if (rootMetaFound) {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>            MetaTableAccessor.Visitor visitor = new DefaultVisitorBase() {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>              @Override<a name="line.749"></a>
-<span class="sourceLineNo">750</span>              public boolean visitInternal(Result row) throws IOException {<a name="line.750"></a>
-<span class="sourceLineNo">751</span>                RegionInfo info = MetaTableAccessor.getRegionInfo(row);<a name="line.751"></a>
-<span class="sourceLineNo">752</span>                if (info != null) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>                  Cell serverCell =<a name="line.753"></a>
-<span class="sourceLineNo">754</span>                      row.getColumnLatestCell(HConstants.CATALOG_FAMILY,<a name="line.754"></a>
-<span class="sourceLineNo">755</span>                          HConstants.SERVER_QUALIFIER);<a name="line.755"></a>
-<span class="sourceLineNo">756</span>                  if (RSGROUP_TABLE_NAME.equals(info.getTable()) &amp;&amp; serverCell != null) {<a name="line.756"></a>
-<span class="sourceLineNo">757</span>                    ServerName sn =<a name="line.757"></a>
-<span class="sourceLineNo">758</span>                        ServerName.parseVersionedServerName(CellUtil.cloneValue(serverCell));<a name="line.758"></a>
-<span class="sourceLineNo">759</span>                    if (sn == null) {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>                      found.set(false);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>                    } else if (tsm.isTableState(RSGROUP_TABLE_NAME, TableState.State.ENABLED)) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>                      try {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                        ClientProtos.ClientService.BlockingInterface rs = conn.getClient(sn);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                        ClientProtos.GetRequest request =<a name="line.764"></a>
-<span class="sourceLineNo">765</span>                            RequestConverter.buildGetRequest(info.getRegionName(),<a name="line.765"></a>
-<span class="sourceLineNo">766</span>                                new Get(ROW_KEY));<a name="line.766"></a>
-<span class="sourceLineNo">767</span>                        rs.get(null, request);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>                        assignedRegions.add(info);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>                      } catch(Exception ex) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>                        LOG.debug("Caught exception while verifying group region", ex);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>                      }<a name="line.771"></a>
-<span class="sourceLineNo">772</span>                    }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>                    foundRegions.add(info);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>                  }<a name="line.774"></a>
-<span class="sourceLineNo">775</span>                  if (TableName.NAMESPACE_TABLE_NAME.equals(info.getTable())) {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>                    Cell cell = row.getColumnLatestCell(HConstants.CATALOG_FAMILY,<a name="line.776"></a>
-<span class="sourceLineNo">777</span>                        HConstants.SERVER_QUALIFIER);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>                    ServerName sn = null;<a name="line.778"></a>
-<span class="sourceLineNo">779</span>                    if(cell != null) {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>                      sn = ServerName.parseVersionedServerName(CellUtil.cloneValue(cell));<a name="line.780"></a>
-<span class="sourceLineNo">781</span>                    }<a name="line.781"></a>
-<span class="sourceLineNo">782</span>                    if (sn == null) {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>                      nsFound.set(false);<a name="line.783"></a>
-<span class="sourceLineNo">784</span>                    } else if (tsm.isTableState(TableName.NAMESPACE_TABLE_NAME,<a name="line.784"></a>
-<span class="sourceLineNo">785</span>                        TableState.State.ENABLED)) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>                      try {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>                        ClientProtos.ClientService.BlockingInterface rs = conn.getClient(sn);<a name="line.787"></a>
-<span class="sourceLineNo">788</span>                        ClientProtos.GetRequest request =<a name="line.788"></a>
-<span class="sourceLineNo">789</span>                            RequestConverter.buildGetRequest(info.getRegionName(),<a name="line.789"></a>
-<span class="sourceLineNo">790</span>                                new Get(ROW_KEY));<a name="line.790"></a>
-<span class="sourceLineNo">791</span>                        rs.get(null, request);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>                        nsFound.set(true);<a name="line.792"></a>
-<span class="sourceLineNo">793</span>                      } catch(Exception ex) {<a name="line.793"></a>
-<span class="sourceLineNo">794</span>                        LOG.debug("Caught exception while verifying group region", ex);<a name="line.794"></a>
-<span class="sourceLineNo">795</span>                      }<a name="line.795"></a>
-<span class="sourceLineNo">796</span>                    }<a name="line.796"></a>
-<span class="sourceLineNo">797</span>                  }<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                }<a name="line.798"></a>
-<span class="sourceLineNo">799</span>                return true;<a name="line.799"></a>
-<span class="sourceLineNo">800</span>              }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>            };<a name="line.801"></a>
-<span class="sourceLineNo">802</span>            MetaTableAccessor.fullScanRegions(conn, visitor);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>            // if no regions in meta then we have to create the table<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            if (foundRegions.size() &lt; 1 &amp;&amp; rootMetaFound &amp;&amp; !createSent &amp;&amp; nsFound.get()) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>              createRSGroupTable();<a name="line.805"></a>
-<span class="sourceLineNo">806</span>              createSent = true;<a name="line.806"></a>
-<span class="sourceLineNo">807</span>            }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            LOG.info("RSGroup table=" + RSGROUP_TABLE_NAME + " isOnline=" + found.get()<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                + ", regionCount=" + foundRegions.size() + ", assignCount="<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                + assignedRegions.size() + ", rootMetaFound=" + rootMetaFound);<a name="line.810"></a>
-<span class="sourceLineNo">811</span>            found.set(found.get() &amp;&amp; assignedRegions.size() == foundRegions.size()<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                &amp;&amp; foundRegions.size() &gt; 0);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          } else {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>            LOG.info("Waiting for catalog tables to come online");<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            found.set(false);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>          }<a name="line.816"></a>
-<span class="sourceLineNo">817</span>          if (found.get()) {<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            LOG.debug("With group table online, refreshing cached information.");<a name="line.818"></a>
-<span class="sourceLineNo">819</span>            RSGroupInfoManagerImpl.this.refresh(true);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            online = true;<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            //flush any inconsistencies between ZK and HTable<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            RSGroupInfoManagerImpl.this.flushConfig();<a name="line.822"></a>
-<span class="sourceLineNo">823</span>          }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>        } catch (RuntimeException e) {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>          throw e;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>        } catch(Exception e) {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          found.set(false);<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          LOG.warn("Failed to perform check", e);<a name="line.828"></a>
-<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
-<span class="sourceLineNo">830</span>        try {<a name="line.830"></a>
-<span class="sourceLineNo">831</span>          Thread.sleep(100);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>        } catch (InterruptedException e) {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          LOG.info("Sleep interrupted", e);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      }<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      return found.get();<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>    private void createRSGroupTable() throws IOException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>      Long procId = masterServices.createSystemTable(RSGROUP_TABLE_DESC);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      // wait for region to be online<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      int tries = 600;<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      while (!(masterServices.getMasterProcedureExecutor().isFinished(procId))<a name="line.843"></a>
-<span class="sourceLineNo">844</span>          &amp;&amp; masterServices.getMasterProcedureExecutor().isRunning()<a name="line.844"></a>
-<span class="sourceLineNo">845</span>          &amp;&amp; tries &gt; 0) {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>        try {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          Thread.sleep(100);<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } catch (InterruptedException e) {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new IOException("Wait interrupted ", e);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        tries--;<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      if(tries &lt;= 0) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        throw new IOException("Failed to create group table in a given time.");<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      } else {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        Procedure&lt;?&gt; result = masterServices.getMasterProcedureExecutor().getResult(procId);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        if (result != null &amp;&amp; result.isFailed()) {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>          throw new IOException("Failed to create group table. " +<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            result.getException().unwrapRemoteIOException());<a name="line.859"></a>
+<span class="sourceLineNo">583</span>      if (!found) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        defaultServers.add(server);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    return defaultServers;<a name="line.587"></a>
+<span class="sourceLineNo">588</span>  }<a name="line.588"></a>
+<span class="sourceLineNo">589</span><a name="line.589"></a>
+<span class="sourceLineNo">590</span>  // Called by ServerEventsListenerThread. Synchronize on this because redoing<a name="line.590"></a>
+<span class="sourceLineNo">591</span>  // the rsGroupMap then writing it out.<a name="line.591"></a>
+<span class="sourceLineNo">592</span>  private synchronized void updateDefaultServers(SortedSet&lt;Address&gt; servers) throws IOException {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    RSGroupInfo info = rsGroupMap.get(RSGroupInfo.DEFAULT_GROUP);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    RSGroupInfo newInfo = new RSGroupInfo(info.getName(), servers, info.getTables());<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    newGroupMap.put(newInfo.getName(), newInfo);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    flushConfig(newGroupMap);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>  }<a name="line.598"></a>
+<span class="sourceLineNo">599</span><a name="line.599"></a>
+<span class="sourceLineNo">600</span>  // Called by FailedOpenUpdaterThread<a name="line.600"></a>
+<span class="sourceLineNo">601</span>  private void updateFailedAssignments() {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    // Kick all regions in FAILED_OPEN state<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    List&lt;RegionInfo&gt; stuckAssignments = Lists.newArrayList();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    for (RegionStateNode state:<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        masterServices.getAssignmentManager().getRegionStates().getRegionsInTransition()) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      if (state.isStuck()) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        stuckAssignments.add(state.getRegionInfo());<a name="line.607"></a>
+<span class="sourceLineNo">608</span>      }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    for (RegionInfo region: stuckAssignments) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      LOG.info("Retrying assignment of " + region);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      try {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        masterServices.getAssignmentManager().unassign(region);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      } catch (IOException e) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        LOG.warn("Unable to reassign " + region, e);<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    }<a name="line.617"></a>
+<span class="sourceLineNo">618</span>  }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span>  /**<a name="line.620"></a>
+<span class="sourceLineNo">621</span>   * Calls {@link RSGroupInfoManagerImpl#updateDefaultServers(SortedSet)} to update list of known<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * servers. Notifications about server changes are received by registering {@link ServerListener}.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * As a listener, we need to return immediately, so the real work of updating the servers is<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * done asynchronously in this thread.<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   */<a name="line.625"></a>
+<span class="sourceLineNo">626</span>  private class ServerEventsListenerThread extends Thread implements ServerListener {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    private final Log LOG = LogFactory.getLog(ServerEventsListenerThread.class);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    private boolean changed = false;<a name="line.628"></a>
+<span class="sourceLineNo">629</span><a name="line.629"></a>
+<span class="sourceLineNo">630</span>    ServerEventsListenerThread() {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      setDaemon(true);<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    }<a name="line.632"></a>
+<span class="sourceLineNo">633</span><a name="line.633"></a>
+<span class="sourceLineNo">634</span>    @Override<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    public void serverAdded(ServerName serverName) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      serverChanged();<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    @Override<a name="line.639"></a>
+<span class="sourceLineNo">640</span>    public void serverRemoved(ServerName serverName) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>      serverChanged();<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    }<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>    private synchronized void serverChanged() {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      changed = true;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      this.notify();<a name="line.646"></a>
+<span class="sourceLineNo">647</span>    }<a name="line.647"></a>
+<span class="sourceLineNo">648</span><a name="line.648"></a>
+<span class="sourceLineNo">649</span>    @Override<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    public void run() {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>      setName(ServerEventsListenerThread.class.getName() + "-" + masterServices.getServerName());<a name="line.651"></a>
+<span class="sourceLineNo">652</span>      SortedSet&lt;Address&gt; prevDefaultServers = new TreeSet&lt;&gt;();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      while(isMasterRunning(masterServices)) {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        try {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>          LOG.info("Updati

<TRUNCATED>

[50/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
Published site at .


Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/a5c4dca3
Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/a5c4dca3
Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/a5c4dca3

Branch: refs/heads/asf-site
Commit: a5c4dca3bfda7e216f55033d2a218b1941090383
Parents: 1c77956
Author: jenkins <bu...@apache.org>
Authored: Fri Dec 1 15:17:55 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Fri Dec 1 15:17:55 2017 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |     4 +-
 .../org/apache/hadoop/hbase/ClusterStatus.html  |    16 +-
 .../hbase/quotas/SpaceViolationPolicy.html      |     4 +-
 .../hbase/quotas/ThrottlingException.Type.html  |     4 +-
 .../org/apache/hadoop/hbase/ClusterStatus.html  |   373 +-
 book.html                                       |     2 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 33854 ++++++++---------
 checkstyle.rss                                  |     8 +-
 coc.html                                        |     4 +-
 cygwin.html                                     |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     4 +-
 devapidocs/constant-values.html                 |    27 +-
 devapidocs/index-all.html                       |    78 +-
 .../hadoop/hbase/ClusterStatus.Builder.html     |    46 +-
 .../hadoop/hbase/ClusterStatus.Option.html      |    22 +-
 .../org/apache/hadoop/hbase/ClusterStatus.html  |    18 +-
 .../hadoop/hbase/backup/package-tree.html       |     2 +-
 .../hadoop/hbase/class-use/ServerName.html      |    12 +
 .../hadoop/hbase/client/package-tree.html       |    24 +-
 .../class-use/ConstraintException.html          |     8 +-
 .../hbase/coprocessor/MasterObserver.html       |   280 +-
 .../class-use/MasterCoprocessorEnvironment.html |   195 +-
 .../coprocessor/class-use/ObserverContext.html  |   293 +-
 .../ExampleMasterObserverWithMetrics.html       |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |     6 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     6 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     4 +-
 .../hbase/master/MasterCoprocessorHost.html     |   264 +-
 .../hadoop/hbase/master/package-tree.html       |     2 +-
 .../hbase/master/procedure/package-tree.html    |     2 +-
 .../hadoop/hbase/net/class-use/Address.html     |    89 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    16 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     4 +-
 .../hbase/quotas/MasterSpaceQuotaObserver.html  |     2 +-
 .../hadoop/hbase/quotas/package-tree.html       |     6 +-
 .../hadoop/hbase/regionserver/package-tree.html |    18 +-
 .../regionserver/querymatcher/package-tree.html |     2 +-
 .../hbase/regionserver/wal/AbstractFSWAL.html   |    18 +-
 .../hbase/regionserver/wal/AsyncFSWAL.html      |   307 +-
 ...ncProtobufLogWriter.OutputStreamWrapper.html |    18 +-
 .../wal/AsyncProtobufLogWriter.html             |    26 +-
 .../hbase/regionserver/wal/FSWALEntry.html      |    83 +-
 .../regionserver/wal/RingBufferTruck.Type.html  |    12 +-
 .../hbase/regionserver/wal/RingBufferTruck.html |    30 +-
 .../wal/SecureAsyncProtobufLogWriter.html       |    12 +-
 .../regionserver/wal/class-use/FSWALEntry.html  |     5 +-
 .../wal/class-use/FailedLogCloseException.html  |     4 +-
 .../wal/class-use/WALActionsListener.html       |     4 +-
 .../hbase/regionserver/wal/package-tree.html    |     2 +-
 .../hadoop/hbase/rest/model/package-tree.html   |     2 +-
 .../hadoop/hbase/rsgroup/RSGroupAdmin.html      |    31 +-
 .../hbase/rsgroup/RSGroupAdminClient.html       |    60 +-
 ...upAdminEndpoint.RSGroupAdminServiceImpl.html |    53 +-
 .../hbase/rsgroup/RSGroupAdminEndpoint.html     |    78 +-
 .../hbase/rsgroup/RSGroupAdminServer.html       |    91 +-
 .../hbase/rsgroup/RSGroupInfoManager.html       |    27 +-
 ...InfoManagerImpl.FailedOpenUpdaterThread.html |    16 +-
 ...oupInfoManagerImpl.RSGroupStartupWorker.html |    16 +-
 ...oManagerImpl.ServerEventsListenerThread.html |    16 +-
 .../hbase/rsgroup/RSGroupInfoManagerImpl.html   |    70 +-
 .../hbase/security/access/AccessController.html |   123 +-
 .../CoprocessorWhitelistMasterObserver.html     |     2 +-
 .../hadoop/hbase/security/package-tree.html     |     2 +-
 .../visibility/VisibilityController.html        |     2 +-
 .../hadoop/hbase/thrift/package-tree.html       |     2 +-
 .../apache/hadoop/hbase/util/package-tree.html  |     8 +-
 .../wal/AsyncFSWALProvider.AsyncWriter.html     |     4 +-
 .../hadoop/hbase/wal/AsyncFSWALProvider.html    |    24 +-
 .../AsyncFSWALProvider.AsyncWriter.html         |     4 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 .../hadoop/hbase/ClusterStatus.Builder.html     |   373 +-
 .../hadoop/hbase/ClusterStatus.Option.html      |   373 +-
 .../org/apache/hadoop/hbase/ClusterStatus.html  |   373 +-
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../hbase/coprocessor/MasterObserver.html       |   376 +-
 ...MasterCoprocessorHost.MasterEnvironment.html |   538 +-
 ...st.MasterEnvironmentForCoreCoprocessors.html |   538 +-
 ...CoprocessorHost.MasterObserverOperation.html |   538 +-
 .../hbase/master/MasterCoprocessorHost.html     |   538 +-
 .../HRegion.BatchOperation.Visitor.html         |     4 +-
 .../regionserver/HRegion.BatchOperation.html    |     4 +-
 .../regionserver/HRegion.BulkLoadListener.html  |     4 +-
 .../HRegion.FlushResult.Result.html             |     4 +-
 .../hbase/regionserver/HRegion.FlushResult.html |     4 +-
 .../regionserver/HRegion.FlushResultImpl.html   |     4 +-
 .../HRegion.MutationBatchOperation.html         |     4 +-
 .../HRegion.ObservedExceptionsInBatch.html      |     4 +-
 .../HRegion.PrepareFlushResult.html             |     4 +-
 .../regionserver/HRegion.RegionScannerImpl.html |     4 +-
 .../HRegion.ReplayBatchOperation.html           |     4 +-
 .../regionserver/HRegion.RowLockContext.html    |     4 +-
 .../hbase/regionserver/HRegion.RowLockImpl.html |     4 +-
 .../hbase/regionserver/HRegion.WriteState.html  |     4 +-
 .../hadoop/hbase/regionserver/HRegion.html      |     4 +-
 .../wal/AbstractFSWAL.WalProps.html             |   156 +-
 .../hbase/regionserver/wal/AbstractFSWAL.html   |   156 +-
 .../hbase/regionserver/wal/AsyncFSWAL.html      |  1396 +-
 ...ncProtobufLogWriter.OutputStreamWrapper.html |   180 +-
 .../wal/AsyncProtobufLogWriter.html             |   180 +-
 .../hbase/regionserver/wal/FSWALEntry.html      |   188 +-
 .../regionserver/wal/RingBufferTruck.Type.html  |   134 +-
 .../hbase/regionserver/wal/RingBufferTruck.html |   134 +-
 .../wal/SecureAsyncProtobufLogWriter.html       |    53 +-
 .../hadoop/hbase/rsgroup/RSGroupAdmin.html      |    12 +-
 .../hbase/rsgroup/RSGroupAdminClient.html       |   348 +-
 ...upAdminEndpoint.RSGroupAdminServiceImpl.html |   698 +-
 .../hbase/rsgroup/RSGroupAdminEndpoint.html     |   698 +-
 .../hbase/rsgroup/RSGroupAdminServer.html       |   156 +-
 .../hbase/rsgroup/RSGroupInfoManager.html       |     8 +-
 ...InfoManagerImpl.FailedOpenUpdaterThread.html |  1202 +-
 ...oupInfoManagerImpl.RSGroupStartupWorker.html |  1202 +-
 ...oManagerImpl.ServerEventsListenerThread.html |  1202 +-
 .../hbase/rsgroup/RSGroupInfoManagerImpl.html   |  1202 +-
 .../access/AccessController.OpType.html         |   112 +-
 .../hbase/security/access/AccessController.html |   112 +-
 .../wal/AsyncFSWALProvider.AsyncWriter.html     |   161 +-
 .../hadoop/hbase/wal/AsyncFSWALProvider.html    |   161 +-
 export_control.html                             |     4 +-
 hbase-annotations/checkstyle.html               |     4 +-
 hbase-annotations/dependencies.html             |     4 +-
 hbase-annotations/dependency-convergence.html   |     4 +-
 hbase-annotations/dependency-info.html          |     4 +-
 hbase-annotations/dependency-management.html    |     4 +-
 hbase-annotations/index.html                    |     4 +-
 hbase-annotations/integration.html              |     4 +-
 hbase-annotations/issue-tracking.html           |     4 +-
 hbase-annotations/license.html                  |     4 +-
 hbase-annotations/mail-lists.html               |     4 +-
 hbase-annotations/plugin-management.html        |     4 +-
 hbase-annotations/plugins.html                  |     4 +-
 hbase-annotations/project-info.html             |     4 +-
 hbase-annotations/project-reports.html          |     4 +-
 hbase-annotations/project-summary.html          |     4 +-
 hbase-annotations/source-repository.html        |     4 +-
 hbase-annotations/team-list.html                |     4 +-
 hbase-build-configuration/dependencies.html     |     4 +-
 .../dependency-convergence.html                 |     4 +-
 hbase-build-configuration/dependency-info.html  |     4 +-
 .../dependency-management.html                  |     4 +-
 .../hbase-archetypes/dependencies.html          |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../hbase-archetypes/dependency-info.html       |     4 +-
 .../hbase-archetypes/dependency-management.html |     4 +-
 .../hbase-archetype-builder/dependencies.html   |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../dependency-info.html                        |     4 +-
 .../dependency-management.html                  |     4 +-
 .../hbase-archetype-builder/index.html          |     4 +-
 .../hbase-archetype-builder/integration.html    |     4 +-
 .../hbase-archetype-builder/issue-tracking.html |     4 +-
 .../hbase-archetype-builder/license.html        |     4 +-
 .../hbase-archetype-builder/mail-lists.html     |     4 +-
 .../plugin-management.html                      |     4 +-
 .../hbase-archetype-builder/plugins.html        |     4 +-
 .../hbase-archetype-builder/project-info.html   |     4 +-
 .../project-summary.html                        |     4 +-
 .../source-repository.html                      |     4 +-
 .../hbase-archetype-builder/team-list.html      |     4 +-
 .../hbase-client-project/checkstyle.html        |     4 +-
 .../hbase-client-project/dependencies.html      |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../hbase-client-project/dependency-info.html   |     4 +-
 .../dependency-management.html                  |     4 +-
 .../hbase-client-project/index.html             |     4 +-
 .../hbase-client-project/integration.html       |     4 +-
 .../hbase-client-project/issue-tracking.html    |     4 +-
 .../hbase-client-project/license.html           |     4 +-
 .../hbase-client-project/mail-lists.html        |     4 +-
 .../hbase-client-project/plugin-management.html |     4 +-
 .../hbase-client-project/plugins.html           |     4 +-
 .../hbase-client-project/project-info.html      |     4 +-
 .../hbase-client-project/project-reports.html   |     4 +-
 .../hbase-client-project/project-summary.html   |     4 +-
 .../hbase-client-project/source-repository.html |     4 +-
 .../hbase-client-project/team-list.html         |     4 +-
 .../hbase-shaded-client-project/checkstyle.html |     4 +-
 .../dependencies.html                           |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../dependency-info.html                        |     4 +-
 .../dependency-management.html                  |     4 +-
 .../hbase-shaded-client-project/index.html      |     4 +-
 .../integration.html                            |     4 +-
 .../issue-tracking.html                         |     4 +-
 .../hbase-shaded-client-project/license.html    |     4 +-
 .../hbase-shaded-client-project/mail-lists.html |     4 +-
 .../plugin-management.html                      |     4 +-
 .../hbase-shaded-client-project/plugins.html    |     4 +-
 .../project-info.html                           |     4 +-
 .../project-reports.html                        |     4 +-
 .../project-summary.html                        |     4 +-
 .../source-repository.html                      |     4 +-
 .../hbase-shaded-client-project/team-list.html  |     4 +-
 .../hbase-archetypes/index.html                 |     4 +-
 .../hbase-archetypes/integration.html           |     4 +-
 .../hbase-archetypes/issue-tracking.html        |     4 +-
 .../hbase-archetypes/license.html               |     4 +-
 .../hbase-archetypes/mail-lists.html            |     4 +-
 .../hbase-archetypes/plugin-management.html     |     4 +-
 .../hbase-archetypes/plugins.html               |     4 +-
 .../hbase-archetypes/project-info.html          |     4 +-
 .../hbase-archetypes/project-summary.html       |     4 +-
 .../hbase-archetypes/source-repository.html     |     4 +-
 .../hbase-archetypes/team-list.html             |     4 +-
 .../hbase-spark/checkstyle.html                 |     4 +-
 .../hbase-spark/dependencies.html               |     4 +-
 .../hbase-spark/dependency-convergence.html     |     4 +-
 .../hbase-spark/dependency-info.html            |     4 +-
 .../hbase-spark/dependency-management.html      |     4 +-
 .../hbase-spark/index.html                      |     4 +-
 .../hbase-spark/integration.html                |     4 +-
 .../hbase-spark/issue-tracking.html             |     4 +-
 .../hbase-spark/license.html                    |     4 +-
 .../hbase-spark/mail-lists.html                 |     4 +-
 .../hbase-spark/plugin-management.html          |     4 +-
 .../hbase-spark/plugins.html                    |     4 +-
 .../hbase-spark/project-info.html               |     4 +-
 .../hbase-spark/project-reports.html            |     4 +-
 .../hbase-spark/project-summary.html            |     4 +-
 .../hbase-spark/source-repository.html          |     4 +-
 .../hbase-spark/team-list.html                  |     4 +-
 hbase-build-configuration/index.html            |     4 +-
 hbase-build-configuration/integration.html      |     4 +-
 hbase-build-configuration/issue-tracking.html   |     4 +-
 hbase-build-configuration/license.html          |     4 +-
 hbase-build-configuration/mail-lists.html       |     4 +-
 .../plugin-management.html                      |     4 +-
 hbase-build-configuration/plugins.html          |     4 +-
 hbase-build-configuration/project-info.html     |     4 +-
 hbase-build-configuration/project-summary.html  |     4 +-
 .../source-repository.html                      |     4 +-
 hbase-build-configuration/team-list.html        |     4 +-
 hbase-shaded-check-invariants/checkstyle.html   |     4 +-
 hbase-shaded-check-invariants/dependencies.html |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../dependency-info.html                        |     4 +-
 .../dependency-management.html                  |     4 +-
 hbase-shaded-check-invariants/index.html        |     4 +-
 hbase-shaded-check-invariants/integration.html  |     4 +-
 .../issue-tracking.html                         |     4 +-
 hbase-shaded-check-invariants/license.html      |     4 +-
 hbase-shaded-check-invariants/mail-lists.html   |     4 +-
 .../plugin-management.html                      |     4 +-
 hbase-shaded-check-invariants/plugins.html      |     4 +-
 hbase-shaded-check-invariants/project-info.html |     4 +-
 .../project-reports.html                        |     4 +-
 .../project-summary.html                        |     4 +-
 .../source-repository.html                      |     4 +-
 hbase-shaded-check-invariants/team-list.html    |     4 +-
 index.html                                      |     4 +-
 integration.html                                |     4 +-
 issue-tracking.html                             |     4 +-
 license.html                                    |     4 +-
 mail-lists.html                                 |     4 +-
 metrics.html                                    |     4 +-
 old_news.html                                   |     4 +-
 plugin-management.html                          |     4 +-
 plugins.html                                    |     4 +-
 poweredbyhbase.html                             |     4 +-
 project-info.html                               |     4 +-
 project-reports.html                            |     4 +-
 project-summary.html                            |     4 +-
 pseudo-distributed.html                         |     4 +-
 replication.html                                |     4 +-
 resources.html                                  |     4 +-
 source-repository.html                          |     4 +-
 sponsors.html                                   |     4 +-
 supportingprojects.html                         |     4 +-
 team-list.html                                  |     4 +-
 testdevapidocs/index-all.html                   |     6 +
 ...stJMXConnectorServer.MyAccessController.html |     4 +-
 ...leteWithFailures.MasterSnapshotObserver.html |     2 +-
 .../hadoop/hbase/backup/package-tree.html       |     2 +-
 ...cAdminBuilder.TestMaxRetriesCoprocessor.html |     2 +-
 ...Builder.TestOperationTimeoutCoprocessor.html |     2 +-
 ...cAdminBuilder.TestRpcTimeoutCoprocessor.html |     2 +-
 .../TestClientClusterStatus.MyObserver.html     |     2 +-
 .../TestEnableTable.MasterSyncObserver.html     |     2 +-
 ...rHostingPrimayMetaRegionSlowOrStopCopro.html |    14 +-
 ...icaWithCluster.RegionServerStoppedCopro.html |    10 +-
 .../TestReplicaWithCluster.SlowMeCopro.html     |    12 +-
 .../hbase/client/TestReplicaWithCluster.html    |    42 +-
 .../TestClassLoading.TestMasterCoprocessor.html |     2 +-
 ...CoprocessorMetrics.CustomMasterObserver.html |     2 +-
 ...rExceptionWithAbort.BuggyMasterObserver.html |     2 +-
 ...ExceptionWithRemove.BuggyMasterObserver.html |     2 +-
 .../TestMasterObserver.CPMasterObserver.html    |     2 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     2 +-
 ...oprocessorServices.MockAccessController.html |     2 +-
 ...cessorServices.MockVisibilityController.html |     2 +-
 .../TestNamespaceAuditor.CPMasterObserver.html  |     2 +-
 ...TestNamespaceAuditor.MasterSyncObserver.html |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |     8 +-
 .../hadoop/hbase/procedure/package-tree.html    |     8 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 ...ionOnCluster.FailingSplitMasterObserver.html |     2 +-
 .../hadoop/hbase/regionserver/package-tree.html |     2 +-
 .../hbase/rsgroup/IntegrationTestRSGroup.html   |     2 +-
 .../hadoop/hbase/rsgroup/TestRSGroups.html      |     2 +-
 .../hadoop/hbase/rsgroup/TestRSGroupsBase.html  |   140 +-
 .../rsgroup/VerifyingRSGroupAdminClient.html    |    24 +-
 .../SecureTestUtil.MasterSyncObserver.html      |     2 +-
 ...estAccessController2.MyAccessController.html |     4 +-
 ...ccessController3.FaultyAccessController.html |     4 +-
 ...napshotClientRetries.MasterSyncObserver.html |     2 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     4 +-
 ...BaseTestHBaseFsck.MasterSyncCoprocessor.html |     2 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 ...rHostingPrimayMetaRegionSlowOrStopCopro.html |  1461 +-
 ...icaWithCluster.RegionServerStoppedCopro.html |  1461 +-
 .../TestReplicaWithCluster.SlowMeCopro.html     |  1461 +-
 .../hbase/client/TestReplicaWithCluster.html    |  1461 +-
 .../hbase/regionserver/wal/TestAsyncFSWAL.html  |     4 +-
 .../regionserver/wal/TestAsyncWALReplay.html    |     2 +-
 .../hadoop/hbase/rsgroup/TestRSGroups.html      |     6 +-
 .../hadoop/hbase/rsgroup/TestRSGroupsBase.html  |  1756 +-
 .../rsgroup/VerifyingRSGroupAdminClient.html    |    82 +-
 322 files changed, 30056 insertions(+), 29019 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 97a19e9..f7b94c9 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -606,7 +606,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 85a97f7..3942b5f 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20171130144806+00'00')
-/CreationDate (D:20171130144806+00'00')
+/ModDate (D:20171201144755+00'00')
+/CreationDate (D:20171201144755+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/apidocs/org/apache/hadoop/hbase/ClusterStatus.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/ClusterStatus.html b/apidocs/org/apache/hadoop/hbase/ClusterStatus.html
index 5e2492a..2343da4 100644
--- a/apidocs/org/apache/hadoop/hbase/ClusterStatus.html
+++ b/apidocs/org/apache/hadoop/hbase/ClusterStatus.html
@@ -579,7 +579,7 @@ public&nbsp;byte&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Clus
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterId</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.302">getClusterId</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.305">getClusterId</a>()</pre>
 </li>
 </ul>
 <a name="getMasterCoprocessors--">
@@ -588,7 +588,7 @@ public&nbsp;byte&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Clus
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessors</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.306">getMasterCoprocessors</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.309">getMasterCoprocessors</a>()</pre>
 </li>
 </ul>
 <a name="getLastMajorCompactionTsForTable-org.apache.hadoop.hbase.TableName-">
@@ -597,7 +597,7 @@ public&nbsp;byte&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Clus
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTsForTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.310">getLastMajorCompactionTsForTable</a>(<a href="../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.313">getLastMajorCompactionTsForTable</a>(<a href="../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
 </li>
 </ul>
 <a name="getLastMajorCompactionTsForRegion-byte:A-">
@@ -606,7 +606,7 @@ public&nbsp;byte&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Clus
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTsForRegion</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.323">getLastMajorCompactionTsForRegion</a>(byte[]&nbsp;region)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.326">getLastMajorCompactionTsForRegion</a>(byte[]&nbsp;region)</pre>
 </li>
 </ul>
 <a name="isBalancerOn--">
@@ -615,7 +615,7 @@ public&nbsp;byte&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Clus
 <ul class="blockList">
 <li class="blockList">
 <h4>isBalancerOn</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.334">isBalancerOn</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.337">isBalancerOn</a>()</pre>
 </li>
 </ul>
 <a name="getBalancerOn--">
@@ -624,7 +624,7 @@ public&nbsp;byte&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Clus
 <ul class="blockList">
 <li class="blockList">
 <h4>getBalancerOn</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.338">getBalancerOn</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.341">getBalancerOn</a>()</pre>
 </li>
 </ul>
 <a name="getMasterInfoPort--">
@@ -633,7 +633,7 @@ public&nbsp;byte&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Clus
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterInfoPort</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.342">getMasterInfoPort</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.345">getMasterInfoPort</a>()</pre>
 </li>
 </ul>
 <a name="toString--">
@@ -642,7 +642,7 @@ public&nbsp;byte&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Clus
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.346">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.349">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/apidocs/org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html b/apidocs/org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html
index 446e2f0..734f85d 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html
@@ -273,7 +273,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#line.36">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#line.34">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -293,7 +293,7 @@ for (SpaceViolationPolicy c : SpaceViolationPolicy.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#line.36">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html#line.34">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html b/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
index 4e38bad..043f61f 100644
--- a/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
+++ b/apidocs/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html
@@ -285,7 +285,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.37">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.35">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -305,7 +305,7 @@ for (ThrottlingException.Type c : ThrottlingException.Type.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.37">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottlingException.Type</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html#line.35">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/apidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.html b/apidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.html
index e8675ce..1aaa281 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/ClusterStatus.html
@@ -304,191 +304,194 @@
 <span class="sourceLineNo">296</span><a name="line.296"></a>
 <span class="sourceLineNo">297</span>  @InterfaceAudience.Private<a name="line.297"></a>
 <span class="sourceLineNo">298</span>  public List&lt;RegionState&gt; getRegionsInTransition() {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    return this.intransition;<a name="line.299"></a>
-<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span>  public String getClusterId() {<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    return clusterId;<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public String[] getMasterCoprocessors() {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    return masterCoprocessors;<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  public long getLastMajorCompactionTsForTable(TableName table) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    long result = Long.MAX_VALUE;<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    for (ServerName server : getServers()) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      ServerLoad load = getLoad(server);<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      for (RegionLoad rl : load.getRegionsLoad().values()) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        if (table.equals(HRegionInfo.getTable(rl.getName()))) {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>          result = Math.min(result, rl.getLastMajorCompactionTs());<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    }<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    return result == Long.MAX_VALUE ? 0 : result;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public long getLastMajorCompactionTsForRegion(final byte[] region) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    for (ServerName server : getServers()) {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      ServerLoad load = getLoad(server);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      RegionLoad rl = load.getRegionsLoad().get(region);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      if (rl != null) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        return rl.getLastMajorCompactionTs();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    }<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    return 0;<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public boolean isBalancerOn() {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    return balancerOn != null &amp;&amp; balancerOn;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public Boolean getBalancerOn() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return balancerOn;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  public int getMasterInfoPort() {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    return masterInfoPort;<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  public String toString() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    StringBuilder sb = new StringBuilder(1024);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    sb.append("Master: " + master);<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>    int backupMastersSize = getBackupMastersSize();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    sb.append("\nNumber of backup masters: " + backupMastersSize);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    if (backupMastersSize &gt; 0) {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>      for (ServerName serverName: backupMasters) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        sb.append("\n  " + serverName);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      }<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    }<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    int serversSize = getServersSize();<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    sb.append("\nNumber of live region servers: " + serversSize);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    if (serversSize &gt; 0) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      for (ServerName serverName: liveServers.keySet()) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        sb.append("\n  " + serverName.getServerName());<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    int deadServerSize = getDeadServersSize();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>    sb.append("\nNumber of dead region servers: " + deadServerSize);<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    if (deadServerSize &gt; 0) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      for (ServerName serverName: deadServers) {<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        sb.append("\n  " + serverName);<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>    sb.append("\nAverage load: " + getAverageLoad());<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    sb.append("\nNumber of requests: " + getRequestsCount());<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    sb.append("\nNumber of regions: " + getRegionsCount());<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>    int ritSize = (intransition != null) ? intransition.size() : 0;<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    sb.append("\nNumber of regions in transition: " + ritSize);<a name="line.379"></a>
-<span class="sourceLineNo">380</span>    if (ritSize &gt; 0) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      for (RegionState state: intransition) {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        sb.append("\n  " + state.toDescriptiveString());<a name="line.382"></a>
-<span class="sourceLineNo">383</span>      }<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return sb.toString();<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  @InterfaceAudience.Private<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  public static Builder newBuilder() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    return new Builder();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>  /**<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * Builder for construct a ClusterStatus.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  @InterfaceAudience.Private<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  public static class Builder {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    private String hbaseVersion = null;<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    private Map&lt;ServerName, ServerLoad&gt; liveServers = null;<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    private List&lt;ServerName&gt; deadServers = null;<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    private ServerName master = null;<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    private List&lt;ServerName&gt; backupMasters = null;<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    private List&lt;RegionState&gt; intransition = null;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    private String clusterId = null;<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    private String[] masterCoprocessors = null;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    private Boolean balancerOn = null;<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    private int masterInfoPort = -1;<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>    private Builder() {}<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>    public Builder setHBaseVersion(String hbaseVersion) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      this.hbaseVersion = hbaseVersion;<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      return this;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>    public Builder setLiveServers(Map&lt;ServerName, ServerLoad&gt; liveServers) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      this.liveServers = liveServers;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      return this;<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>    public Builder setDeadServers(List&lt;ServerName&gt; deadServers) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>      this.deadServers = deadServers;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return this;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    public Builder setMaster(ServerName master) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      this.master = master;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      return this;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    }<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>    public Builder setBackupMasters(List&lt;ServerName&gt; backupMasters) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      this.backupMasters = backupMasters;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      return this;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    public Builder setRegionState(List&lt;RegionState&gt; intransition) {<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      this.intransition = intransition;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      return this;<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>    public Builder setClusterId(String clusterId) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>      this.clusterId = clusterId;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      return this;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>    public Builder setMasterCoprocessors(String[] masterCoprocessors) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      this.masterCoprocessors = masterCoprocessors;<a name="line.447"></a>
-<span class="sourceLineNo">448</span>      return this;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
-<span class="sourceLineNo">450</span><a name="line.450"></a>
-<span class="sourceLineNo">451</span>    public Builder setBalancerOn(Boolean balancerOn) {<a name="line.451"></a>
-<span class="sourceLineNo">452</span>      this.balancerOn = balancerOn;<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      return this;<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    }<a name="line.454"></a>
-<span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    public Builder setMasterInfoPort(int masterInfoPort) {<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      this.masterInfoPort = masterInfoPort;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      return this;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>    public ClusterStatus build() {<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      return new ClusterStatus(hbaseVersion, clusterId, liveServers,<a name="line.462"></a>
-<span class="sourceLineNo">463</span>          deadServers, master, backupMasters, intransition, masterCoprocessors,<a name="line.463"></a>
-<span class="sourceLineNo">464</span>          balancerOn, masterInfoPort);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span>  }<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span>  /**<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   * Kinds of ClusterStatus<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   */<a name="line.470"></a>
-<span class="sourceLineNo">471</span>  public enum Option {<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    HBASE_VERSION, /** status about hbase version */<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    CLUSTER_ID, /** status about cluster id */<a name="line.473"></a>
-<span class="sourceLineNo">474</span>    BALANCER_ON, /** status about balancer is on or not */<a name="line.474"></a>
-<span class="sourceLineNo">475</span>    LIVE_SERVERS, /** status about live region servers */<a name="line.475"></a>
-<span class="sourceLineNo">476</span>    DEAD_SERVERS, /** status about dead region servers */<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    MASTER, /** status about master */<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    BACKUP_MASTERS, /** status about backup masters */<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    MASTER_COPROCESSORS, /** status about master coprocessors */<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    REGIONS_IN_TRANSITION, /** status about regions in transition */<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    MASTER_INFO_PORT; /** master info port **/<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>}<a name="line.483"></a>
+<span class="sourceLineNo">299</span>    if (intransition == null) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      return Collections.emptyList();<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return Collections.unmodifiableList(intransition);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  public String getClusterId() {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    return clusterId;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>  public String[] getMasterCoprocessors() {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    return masterCoprocessors;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>  }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public long getLastMajorCompactionTsForTable(TableName table) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    long result = Long.MAX_VALUE;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    for (ServerName server : getServers()) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      ServerLoad load = getLoad(server);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      for (RegionLoad rl : load.getRegionsLoad().values()) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        if (table.equals(HRegionInfo.getTable(rl.getName()))) {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>          result = Math.min(result, rl.getLastMajorCompactionTs());<a name="line.319"></a>
+<span class="sourceLineNo">320</span>        }<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      }<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    }<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    return result == Long.MAX_VALUE ? 0 : result;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>  }<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>  public long getLastMajorCompactionTsForRegion(final byte[] region) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    for (ServerName server : getServers()) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      ServerLoad load = getLoad(server);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      RegionLoad rl = load.getRegionsLoad().get(region);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      if (rl != null) {<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        return rl.getLastMajorCompactionTs();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      }<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    return 0;<a name="line.334"></a>
+<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span>  public boolean isBalancerOn() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    return balancerOn != null &amp;&amp; balancerOn;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>  }<a name="line.339"></a>
+<span class="sourceLineNo">340</span><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  public Boolean getBalancerOn() {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return balancerOn;<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  public int getMasterInfoPort() {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    return masterInfoPort;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span>  public String toString() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    StringBuilder sb = new StringBuilder(1024);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    sb.append("Master: " + master);<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>    int backupMastersSize = getBackupMastersSize();<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    sb.append("\nNumber of backup masters: " + backupMastersSize);<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    if (backupMastersSize &gt; 0) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      for (ServerName serverName: backupMasters) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        sb.append("\n  " + serverName);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      }<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>    int serversSize = getServersSize();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    sb.append("\nNumber of live region servers: " + serversSize);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    if (serversSize &gt; 0) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      for (ServerName serverName: liveServers.keySet()) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        sb.append("\n  " + serverName.getServerName());<a name="line.365"></a>
+<span class="sourceLineNo">366</span>      }<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span>    int deadServerSize = getDeadServersSize();<a name="line.369"></a>
+<span class="sourceLineNo">370</span>    sb.append("\nNumber of dead region servers: " + deadServerSize);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>    if (deadServerSize &gt; 0) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      for (ServerName serverName: deadServers) {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        sb.append("\n  " + serverName);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>    sb.append("\nAverage load: " + getAverageLoad());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    sb.append("\nNumber of requests: " + getRequestsCount());<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    sb.append("\nNumber of regions: " + getRegionsCount());<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>    int ritSize = (intransition != null) ? intransition.size() : 0;<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    sb.append("\nNumber of regions in transition: " + ritSize);<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    if (ritSize &gt; 0) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      for (RegionState state: intransition) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        sb.append("\n  " + state.toDescriptiveString());<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    }<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    return sb.toString();<a name="line.388"></a>
+<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>  @InterfaceAudience.Private<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  public static Builder newBuilder() {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return new Builder();<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  }<a name="line.394"></a>
+<span class="sourceLineNo">395</span><a name="line.395"></a>
+<span class="sourceLineNo">396</span>  /**<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * Builder for construct a ClusterStatus.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  @InterfaceAudience.Private<a name="line.399"></a>
+<span class="sourceLineNo">400</span>  public static class Builder {<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    private String hbaseVersion = null;<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    private Map&lt;ServerName, ServerLoad&gt; liveServers = null;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    private List&lt;ServerName&gt; deadServers = null;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    private ServerName master = null;<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    private List&lt;ServerName&gt; backupMasters = null;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    private List&lt;RegionState&gt; intransition = null;<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    private String clusterId = null;<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    private String[] masterCoprocessors = null;<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    private Boolean balancerOn = null;<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    private int masterInfoPort = -1;<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    private Builder() {}<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>    public Builder setHBaseVersion(String hbaseVersion) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      this.hbaseVersion = hbaseVersion;<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      return this;<a name="line.416"></a>
+<span class="sourceLineNo">417</span>    }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>    public Builder setLiveServers(Map&lt;ServerName, ServerLoad&gt; liveServers) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      this.liveServers = liveServers;<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      return this;<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    }<a name="line.422"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span>    public Builder setDeadServers(List&lt;ServerName&gt; deadServers) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>      this.deadServers = deadServers;<a name="line.425"></a>
+<span class="sourceLineNo">426</span>      return this;<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    }<a name="line.427"></a>
+<span class="sourceLineNo">428</span><a name="line.428"></a>
+<span class="sourceLineNo">429</span>    public Builder setMaster(ServerName master) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      this.master = master;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      return this;<a name="line.431"></a>
+<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>    public Builder setBackupMasters(List&lt;ServerName&gt; backupMasters) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      this.backupMasters = backupMasters;<a name="line.435"></a>
+<span class="sourceLineNo">436</span>      return this;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>    public Builder setRegionState(List&lt;RegionState&gt; intransition) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      this.intransition = intransition;<a name="line.440"></a>
+<span class="sourceLineNo">441</span>      return this;<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    }<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>    public Builder setClusterId(String clusterId) {<a name="line.444"></a>
+<span class="sourceLineNo">445</span>      this.clusterId = clusterId;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      return this;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">448</span><a name="line.448"></a>
+<span class="sourceLineNo">449</span>    public Builder setMasterCoprocessors(String[] masterCoprocessors) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>      this.masterCoprocessors = masterCoprocessors;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>      return this;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    }<a name="line.452"></a>
+<span class="sourceLineNo">453</span><a name="line.453"></a>
+<span class="sourceLineNo">454</span>    public Builder setBalancerOn(Boolean balancerOn) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      this.balancerOn = balancerOn;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      return this;<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
+<span class="sourceLineNo">458</span><a name="line.458"></a>
+<span class="sourceLineNo">459</span>    public Builder setMasterInfoPort(int masterInfoPort) {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      this.masterInfoPort = masterInfoPort;<a name="line.460"></a>
+<span class="sourceLineNo">461</span>      return this;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>    public ClusterStatus build() {<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      return new ClusterStatus(hbaseVersion, clusterId, liveServers,<a name="line.465"></a>
+<span class="sourceLineNo">466</span>          deadServers, master, backupMasters, intransition, masterCoprocessors,<a name="line.466"></a>
+<span class="sourceLineNo">467</span>          balancerOn, masterInfoPort);<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    }<a name="line.468"></a>
+<span class="sourceLineNo">469</span>  }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span>  /**<a name="line.471"></a>
+<span class="sourceLineNo">472</span>   * Kinds of ClusterStatus<a name="line.472"></a>
+<span class="sourceLineNo">473</span>   */<a name="line.473"></a>
+<span class="sourceLineNo">474</span>  public enum Option {<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    HBASE_VERSION, /** status about hbase version */<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    CLUSTER_ID, /** status about cluster id */<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    BALANCER_ON, /** status about balancer is on or not */<a name="line.477"></a>
+<span class="sourceLineNo">478</span>    LIVE_SERVERS, /** status about live region servers */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    DEAD_SERVERS, /** status about dead region servers */<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    MASTER, /** status about master */<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    BACKUP_MASTERS, /** status about backup masters */<a name="line.481"></a>
+<span class="sourceLineNo">482</span>    MASTER_COPROCESSORS, /** status about master coprocessors */<a name="line.482"></a>
+<span class="sourceLineNo">483</span>    REGIONS_IN_TRANSITION, /** status about regions in transition */<a name="line.483"></a>
+<span class="sourceLineNo">484</span>    MASTER_INFO_PORT; /** master info port **/<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  }<a name="line.485"></a>
+<span class="sourceLineNo">486</span>}<a name="line.486"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index c9759ad..3c7ea7b 100644
--- a/book.html
+++ b/book.html
@@ -36799,7 +36799,7 @@ The server will return cellblocks compressed using this same compressor as long
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2017-11-30 14:29:43 UTC
+Last updated 2017-12-01 14:29:42 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 88c58e1..a6cebf5 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -311,7 +311,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 


[40/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/quotas/MasterSpaceQuotaObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/MasterSpaceQuotaObserver.html b/devapidocs/org/apache/hadoop/hbase/quotas/MasterSpaceQuotaObserver.html
index 70e564b..3895297 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/MasterSpaceQuotaObserver.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/MasterSpaceQuotaObserver.html
@@ -256,7 +256,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCop
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postAbortProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">post
 Balance</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedCreateTableAct
 ion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCompletedCreateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedMergeRegions
 Action-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postCompletedModifyTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedTruncateTableAction</a>, <a href
 ="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCreateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 erver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postEnableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../..
 /../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">postGetTableDescri
 ptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">postGetTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postListNamespaceDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-o
 rg.apache.hadoop.hbase.client.SnapshotDescription-">postListSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postModifyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">postMove</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/Maste
 rObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>
 , <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAct
 ion</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUs
 erQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a>, <a href="../../..
 /../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.
 hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.
 coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.
 html#preCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.copr
 ocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/Master
 Observer.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a>, <a href="../../../../../org/apache/hadoop/h
 base/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/copr
 ocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a>,
  <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor
 .ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.ha
 doop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreSnapshot-org.apache.had
 oop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#p
 reSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org
 .apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegionAfterMETAAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction</a>, <a href="../../../../../org/a
 pache/hadoop/hbase/coprocessor/MasterObserver.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a>, <a href="../../../.
 ./../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postAbortProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">post
 Balance</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedCreateTableAct
 ion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCompletedCreateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedMergeRegions
 Action-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postCompletedModifyTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedTruncateTableAction</a>, <a href
 ="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCreateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObs
 erver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postEnableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../..
 /../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">postGetTableDescri
 ptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">postGetTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postListNamespaceDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-o
 rg.apache.hadoop.hbase.client.SnapshotDescription-">postListSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../o
 rg/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postModifyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">postMove</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/Maste
 rObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>
 , <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <
 a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../org/apache/hado
 op/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>,
  <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop
 .hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org
 .apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apac
 he.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coproces
 sor.ObserverContext-java.lang.String-">preDeleteNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#pr
 eDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../../../../org/apach
 e/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDesc
 riptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.cli
 ent.RegionInfo:A-">preMergeRegionsAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDes
 criptor-">preModifyTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/Mast
 erObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a>, <a href="../../../
 ../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchT
 ype-">preSetSplitOrMergeEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apac
 he.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.
 html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegionAfterMETAAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.
 html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a>, <a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 3803d9a..47b41f5 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -206,12 +206,12 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 85b1f93..25643b4 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -699,19 +699,19 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index b9cd85d..9d29552 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,8 +130,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
index 8135bdb..b614830 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
@@ -1839,7 +1839,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.984">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.980">toString</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#toString--">WAL</a></code></span></div>
 <div class="block">Human readable identifying information about the state of this WAL.
  Implementors are encouraged to include information appropriate for debugging.
@@ -1859,7 +1859,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogFileSizeIfBeingWritten</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html?is-external=true" title="class or interface in java.util">OptionalLong</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.996">getLogFileSizeIfBeingWritten</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html?is-external=true" title="class or interface in java.util">OptionalLong</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.992">getLogFileSizeIfBeingWritten</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
 <div class="block">if the given <code>path</code> is being written currently, then return its length.
  <p>
  This is used by replication to prevent replicating unacked log entries. See
@@ -1876,7 +1876,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1024">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info,
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1020">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info,
                             <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKey.html" title="class in org.apache.hadoop.hbase.wal">WALKey</a>&nbsp;key,
                             <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edits,
                             boolean&nbsp;inMemstore)
@@ -1918,7 +1918,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doAppend</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1027">doAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;writer,
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1023">doAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;writer,
                                  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1933,7 +1933,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>createWriterInstance</h4>
-<pre>protected abstract&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1029">createWriterInstance</a>(org.apache.hadoop.fs.Path&nbsp;path)
+<pre>protected abstract&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1025">createWriterInstance</a>(org.apache.hadoop.fs.Path&nbsp;path)
                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                           <a href="../../../../../../org/apache/hadoop/hbase/util/CommonFSUtils.StreamLacksCapabilityException.html" title="class in org.apache.hadoop.hbase.util">CommonFSUtils.StreamLacksCapabilityException</a></pre>
 <dl>
@@ -1951,7 +1951,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doReplaceWriter</h4>
-<pre>protected abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1035">doReplaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>protected abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1031">doReplaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                         org.apache.hadoop.fs.Path&nbsp;newPath,
                                         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;nextWriter)
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1969,7 +1969,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doShutdown</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1038">doShutdown</a>()
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1034">doShutdown</a>()
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1983,7 +1983,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getPipeline</h4>
-<pre>abstract&nbsp;org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1044">getPipeline</a>()</pre>
+<pre>abstract&nbsp;org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1040">getPipeline</a>()</pre>
 <div class="block">This method gets the pipeline for the current WAL.</div>
 </li>
 </ul>
@@ -1993,7 +1993,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getLogReplication</h4>
-<pre>abstract&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1050">getLogReplication</a>()</pre>
+<pre>abstract&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1046">getLogReplication</a>()</pre>
 <div class="block">This method gets the datanode replication count for the current WAL.</div>
 </li>
 </ul>


[16/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
index 775301c..0c071a7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
@@ -317,602 +317,628 @@
 <span class="sourceLineNo">309</span>    flushConfig(newGroupMap);<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.315"></a>
-<span class="sourceLineNo">316</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    return rsGroupInfoList;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    //Overwrite any info stored by table, this takes precedence<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    try {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>          byte[] data = ZKUtil.getData(watcher, ZNodePaths.joinZNode(groupBasePath, znode));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          if(data.length &gt; 0) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.332"></a>
-<span class="sourceLineNo">333</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.334"></a>
-<span class="sourceLineNo">335</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.335"></a>
-<span class="sourceLineNo">336</span>          }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    }<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    return RSGroupInfoList;<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  @Override<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  public void refresh() throws IOException {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    refresh(false);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  /**<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * Update zk cache. Called on startup of the manager.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   */<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    // if online read from GROUP table<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    if (forceOnline || isOnline()) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      LOG.debug("Refreshing in Online mode.");<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      if (rsGroupTable == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    } else {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>    // refresh default group, prune<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public synchronized void removeServers(Set&lt;Address&gt; servers) throws IOException {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    Map&lt;String, RSGroupInfo&gt; rsGroupInfos = new HashMap&lt;String, RSGroupInfo&gt;();<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    for (Address el: servers) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      RSGroupInfo rsGroupInfo = getRSGroupOfServer(el);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      if (rsGroupInfo != null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        RSGroupInfo newRsGroupInfo = rsGroupInfos.get(rsGroupInfo.getName());<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        if (newRsGroupInfo == null) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          rsGroupInfo.removeServer(el);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          rsGroupInfos.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        } else {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          newRsGroupInfo.removeServer(el);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          rsGroupInfos.put(newRsGroupInfo.getName(), newRsGroupInfo);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      }else {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        LOG.warn("Server " + el + " does not belong to any rsgroup.");<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>    if (rsGroupInfos.size() &gt; 0) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      newGroupMap.putAll(rsGroupInfos);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      flushConfig(newGroupMap);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.341"></a>
+<span class="sourceLineNo">342</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    }<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    return rsGroupInfoList;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    //Overwrite any info stored by table, this takes precedence<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          byte[] data = ZKUtil.getData(watcher, ZNodePaths.joinZNode(groupBasePath, znode));<a name="line.355"></a>
+<span class="sourceLineNo">356</span>          if(data.length &gt; 0) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.361"></a>
+<span class="sourceLineNo">362</span>          }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    return RSGroupInfoList;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span>  @Override<a name="line.372"></a>
+<span class="sourceLineNo">373</span>  public void refresh() throws IOException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    refresh(false);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
 <span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    final List&lt;TableName&gt; specialTables;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    if(!masterServices.isInitialized()) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.379"></a>
-<span class="sourceLineNo">380</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    } else {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      specialTables =<a name="line.382"></a>
-<span class="sourceLineNo">383</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    for (TableName table : specialTables) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      orphanTables.add(table);<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    for (RSGroupInfo group: groupList) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        orphanTables.removeAll(group.getTables());<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    // from region group table or zk<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        orphanTables));<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    // populate the data<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    for (RSGroupInfo group : groupList) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      newGroupMap.put(group.getName(), group);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      for(TableName table: group.getTables()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>        newTableMap.put(table, group.getName());<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      }<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      throws IOException {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    // populate deletes<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    for(String groupName : prevRSGroups) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      if(!groupMap.containsKey(groupName)) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        mutations.add(d);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
+<span class="sourceLineNo">377</span>  /**<a name="line.377"></a>
+<span class="sourceLineNo">378</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.378"></a>
+<span class="sourceLineNo">379</span>   * Update zk cache. Called on startup of the manager.<a name="line.379"></a>
+<span class="sourceLineNo">380</span>   */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    // if online read from GROUP table<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    if (forceOnline || isOnline()) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      LOG.debug("Refreshing in Online mode.");<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      if (rsGroupTable == null) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    } else {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.393"></a>
+<span class="sourceLineNo">394</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>    // refresh default group, prune<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>    final List&lt;TableName&gt; specialTables;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    if(!masterServices.isInitialized()) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    } else {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      specialTables =<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    for (TableName table : specialTables) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      orphanTables.add(table);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    for (RSGroupInfo group: groupList) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        orphanTables.removeAll(group.getTables());<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    // from region group table or zk<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        orphanTables));<a name="line.424"></a>
 <span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    // populate puts<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      mutations.add(p);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      }<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span>    if(mutations.size() &gt; 0) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      multiMutate(mutations);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    return newTableMap;<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>  private synchronized void flushConfig()<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  throws IOException {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    flushConfig(this.rsGroupMap);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  throws IOException {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.450"></a>
+<span class="sourceLineNo">426</span>    // populate the data<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    for (RSGroupInfo group : groupList) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      newGroupMap.put(group.getName(), group);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      for(TableName table: group.getTables()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        newTableMap.put(table, group.getName());<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      throws IOException {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>    // populate deletes<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    for(String groupName : prevRSGroups) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      if(!groupMap.containsKey(groupName)) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        mutations.add(d);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
 <span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    // For offline mode persistence is still unavailable<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    // We're refreshing in-memory state but only for default servers<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    if (!isOnline()) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      if (!m.equals(newGroupMap) ||<a name="line.458"></a>
-<span class="sourceLineNo">459</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      }<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      rsGroupMap = newGroupMap;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      return;<a name="line.464"></a>
+<span class="sourceLineNo">452</span>    // populate puts<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      mutations.add(p);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      }<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>    if(mutations.size() &gt; 0) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      multiMutate(mutations);<a name="line.464"></a>
 <span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.467"></a>
+<span class="sourceLineNo">466</span>    return newTableMap;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>  }<a name="line.467"></a>
 <span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // Make changes visible after having been persisted to the source of truth<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      for(String groupName : prevRSGroups) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          String znode = ZNodePaths.joinZNode(groupBasePath, groupName);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        String znode = ZNodePaths.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        LOG.debug("Updating znode: "+znode);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    } catch (KeeperException e) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  /**<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * Make changes visible.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   * Caller must be synchronized on 'this'.<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   */<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // Make maps Immutable.<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  /**<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * Update cache of rsgroups.<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * Caller must be synchronized on 'this'.<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @param currentGroups Current list of Groups.<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
-<span class="sourceLineNo">521</span>  private void updateCacheOfRSGroups(final Set&lt;String&gt; currentGroups) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    this.prevRSGroups.clear();<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    this.prevRSGroups.addAll(currentGroups);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>  // Called by getDefaultServers. Presume it has lock in place.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  private List&lt;ServerName&gt; getOnlineRS() throws IOException {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    if (masterServices != null) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      return masterServices.getServerManager().getOnlineServersList();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    LOG.debug("Reading online RS from zookeeper");<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    List&lt;ServerName&gt; servers = new LinkedList&lt;&gt;();<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    try {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      for (String el: ZKUtil.listChildrenNoWatch(watcher, watcher.znodePaths.rsZNode)) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        servers.add(ServerName.parseServerName(el));<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      }<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    } catch (KeeperException e) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      throw new IOException("Failed to retrieve server list from zookeeper", e);<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    }<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    return servers;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>  // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  private SortedSet&lt;Address&gt; getDefaultServers() throws IOException {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    SortedSet&lt;Address&gt; defaultServers = Sets.newTreeSet();<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    for (ServerName serverName : getOnlineRS()) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      Address server =<a name="line.547"></a>
-<span class="sourceLineNo">548</span>          Address.fromParts(serverName.getHostname(), serverName.getPort());<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      boolean found = false;<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      for(RSGroupInfo rsgi: listRSGroups()) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        if(!RSGroupInfo.DEFAULT_GROUP.equals(rsgi.getName()) &amp;&amp;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>            rsgi.containsServer(server)) {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>          found = true;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>          break;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      }<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      if (!found) {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>        defaultServers.add(server);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>      }<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    return defaultServers;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // Called by ServerEventsListenerThread. Synchronize on this because redoing<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  // the rsGroupMap then writing it out.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  private synchronized void updateDefaultServers(SortedSet&lt;Address&gt; servers) throws IOException {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    RSGroupInfo info = rsGroupMap.get(RSGroupInfo.DEFAULT_GROUP);<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    RSGroupInfo newInfo = new RSGroupInfo(info.getName(), servers, info.getTables());<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    newGroupMap.put(newInfo.getName(), newInfo);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    flushConfig(newGroupMap);<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>  // Called by FailedOpenUpdaterThread<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  private void updateFailedAssignments() {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    // Kick all regions in FAILED_OPEN state<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    List&lt;RegionInfo&gt; stuckAssignments = Lists.newArrayList();<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    for (RegionStateNode state:<a name="line.578"></a>
-<span class="sourceLineNo">579</span>        masterServices.getAssignmentManager().getRegionStates().getRegionsInTransition()) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      if (state.isStuck()) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        stuckAssignments.add(state.getRegionInfo());<a name="line.581"></a>
+<span class="sourceLineNo">469</span>  private synchronized void flushConfig()<a name="line.469"></a>
+<span class="sourceLineNo">470</span>  throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    flushConfig(this.rsGroupMap);<a name="line.471"></a>
+<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  throws IOException {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>    // For offline mode persistence is still unavailable<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    // We're refreshing in-memory state but only for default servers<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    if (!isOnline()) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.482"></a>
+<span class="sourceLineNo">483</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      if (!m.equals(newGroupMap) ||<a name="line.484"></a>
+<span class="sourceLineNo">485</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      rsGroupMap = newGroupMap;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>      return;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    }<a name="line.491"></a>
+<span class="sourceLineNo">492</span><a name="line.492"></a>
+<span class="sourceLineNo">493</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>    // Make changes visible after having been persisted to the source of truth<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>    try {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.500"></a>
+<span class="sourceLineNo">501</span><a name="line.501"></a>
+<span class="sourceLineNo">502</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      for(String groupName : prevRSGroups) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>          String znode = ZNodePaths.joinZNode(groupBasePath, groupName);<a name="line.505"></a>
+<span class="sourceLineNo">506</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        }<a name="line.507"></a>
+<span class="sourceLineNo">508</span>      }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        String znode = ZNodePaths.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        LOG.debug("Updating znode: "+znode);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.517"></a>
+<span class="sourceLineNo">518</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      }<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    } catch (KeeperException e) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    }<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>  /**<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   * Make changes visible.<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   * Caller must be synchronized on 'this'.<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   */<a name="line.534"></a>
+<span class="sourceLineNo">535</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    // Make maps Immutable.<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.539"></a>
+<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * Update cache of rsgroups.<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * Caller must be synchronized on 'this'.<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * @param currentGroups Current list of Groups.<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>  private void updateCacheOfRSGroups(final Set&lt;String&gt; currentGroups) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    this.prevRSGroups.clear();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    this.prevRSGroups.addAll(currentGroups);<a name="line.549"></a>
+<span class="sourceLineNo">550</span>  }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>  // Called by getDefaultServers. Presume it has lock in place.<a name="line.552"></a>
+<span class="sourceLineNo">553</span>  private List&lt;ServerName&gt; getOnlineRS() throws IOException {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    if (masterServices != null) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      return masterServices.getServerManager().getOnlineServersList();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    }<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    LOG.debug("Reading online RS from zookeeper");<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    List&lt;ServerName&gt; servers = new LinkedList&lt;&gt;();<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    try {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      for (String el: ZKUtil.listChildrenNoWatch(watcher, watcher.znodePaths.rsZNode)) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>        servers.add(ServerName.parseServerName(el));<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    } catch (KeeperException e) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      throw new IOException("Failed to retrieve server list from zookeeper", e);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    return servers;<a name="line.566"></a>
+<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>  // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs.<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  private SortedSet&lt;Address&gt; getDefaultServers() throws IOException {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    SortedSet&lt;Address&gt; defaultServers = Sets.newTreeSet();<a name="line.571"></a>
+<span class="sourceLineNo">572</span>    for (ServerName serverName : getOnlineRS()) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      Address server =<a name="line.573"></a>
+<span class="sourceLineNo">574</span>          Address.fromParts(serverName.getHostname(), serverName.getPort());<a name="line.574"></a>
+<span class="sourceLineNo">575</span>      boolean found = false;<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      for(RSGroupInfo rsgi: listRSGroups()) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        if(!RSGroupInfo.DEFAULT_GROUP.equals(rsgi.getName()) &amp;&amp;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>            rsgi.containsServer(server)) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>          found = true;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>          break;<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        }<a name="line.581"></a>
 <span class="sourceLineNo">582</span>      }<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    }<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    for (RegionInfo region: stuckAssignments) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      LOG.info("Retrying assignment of " + region);<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      try {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        masterServices.getAssignmentManager().unassign(region);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      } catch (IOException e) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>        LOG.warn("Unable to reassign " + region, e);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>  /**<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * Calls {@link RSGroupInfoManagerImpl#updateDefaultServers(SortedSet)} to update list of known<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * servers. Notifications about server changes are received by registering {@link ServerListener}.<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * As a listener, we need to return immediately, so the real work of updating the servers is<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * done asynchronously in this thread.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  private class ServerEventsListenerThread extends Thread implements ServerListener {<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    private final Log LOG = LogFactory.getLog(ServerEventsListenerThread.class);<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    private boolean changed = false;<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span>    ServerEventsListenerThread() {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>      setDaemon(true);<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    }<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>    @Override<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    public void serverAdded(ServerName serverName) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      serverChanged();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    }<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    @Override<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    public void serverRemoved(ServerName serverName) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      serverChanged();<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>    private synchronized void serverChanged() {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      changed = true;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      this.notify();<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>    @Override<a name="line.623"></a>
-<span class="sourceLineNo">624</span>    public void run() {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      setName(ServerEventsListenerThread.class.getName() + "-" + masterServices.getServerName());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      SortedSet&lt;Address&gt; prevDefaultServers = new TreeSet&lt;&gt;();<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      while(isMasterRunning(masterServices)) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        try {<a name="line.628"></a>
-<span class="sourceLineNo">629</span>          LOG.info("Updating default servers.");<a name="line.629"></a>
-<span class="sourceLineNo">630</span>          SortedSet&lt;Address&gt; servers = RSGroupInfoManagerImpl.this.getDefaultServers();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>          if (!servers.equals(prevDefaultServers)) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>            RSGroupInfoManagerImpl.this.updateDefaultServers(servers);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>            prevDefaultServers = servers;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>            LOG.info("Updated with servers: "+servers.size());<a name="line.634"></a>
-<span class="sourceLineNo">635</span>          }<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          try {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>            synchronized (this) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>              while (!changed) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>                wait();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>              }<a name="line.640"></a>
-<span class="sourceLineNo">641</span>              changed = false;<a name="line.641"></a>
-<span class="sourceLineNo">642</span>            }<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          } catch (InterruptedException e) {<a name="line.643"></a>
-<span class="sourceLineNo">644</span>            LOG.warn("Interrupted", e);<a name="line.644"></a>
-<span class="sourceLineNo">645</span>          }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>        } catch (IOException e) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          LOG.warn("Failed to update default servers", e);<a name="line.647"></a>
-<span class="sourceLineNo">648</span>        }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    }<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>  private class FailedOpenUpdaterThread extends Thread implements ServerListener {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    private final long waitInterval;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    private volatile boolean hasChanged = false;<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>    public FailedOpenUpdaterThread(Configuration conf) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>      this.waitInterval = conf.getLong(REASSIGN_WAIT_INTERVAL_KEY,<a name="line.658"></a>
-<span class="sourceLineNo">659</span>        DEFAULT_REASSIGN_WAIT_INTERVAL);<a name="line.659"></a>
-<span class="sourceLineNo">660</span>      setDaemon(true);<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    }<a name="line.661"></a>
-<span class="sourceLineNo">662</span><a name="line.662"></a>
-<span class="sourceLineNo">663</span>    @Override<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    public void serverAdded(ServerName serverName) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      serverChanged();<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>    @Override<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    public void serverRemoved(ServerName serverName) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    }<a name="line.670"></a>
-<span class="sourceLineNo">671</span><a name="line.671"></a>
-<span class="sourceLineNo">672</span>    @Override<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    public void run() {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>      while (isMasterRunning(masterServices)) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        boolean interrupted = false;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        try {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          synchronized (this) {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>            while (!hasChanged) {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>              wait();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>            }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>            hasChanged = false;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>          }<a name="line.682"></a>
-<span class="sourceLineNo">683</span>        } catch (InterruptedException e) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          LOG.warn("Interrupted", e);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          interrupted = true;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>        }<a name="line.686"></a>
-<span class="sourceLineNo">687</span>        if (!isMasterRunning(masterServices) || interrupted) {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>          continue;<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        }<a name="line.689"></a>
-<span class="sourceLineNo">690</span><a name="line.690"></a>
-<span class="sourceLineNo">691</span>        // First, wait a while in case more servers are about to rejoin the cluster<a name="line.691"></a>
-<span class="sourceLineNo">692</span>        try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>          Thread.sleep(waitInterval);<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        } catch (InterruptedException e) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          LOG.warn("Interrupted", e);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        if (!isMasterRunning(masterServices)) {<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          continue;<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        }<a name="line.699"></a>
-<span class="sourceLineNo">700</span><a name="line.700"></a>
-<span class="sourceLineNo">701</span>        // Kick all regions in FAILED_OPEN state<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        updateFailedAssignments();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>    public void serverChanged() {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      synchronized (this) {<a name="line.707"></a>
-<span class="sourceLineNo">708</span>        hasChanged = true;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        this.notify();<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  private class RSGroupStartupWorker extends Thread {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    private final Log LOG = LogFactory.getLog(RSGroupStartupWorker.class);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    private volatile boolean online = false;<a name="line.716"></a>
-<span class="sourceLineNo">717</span><a name="line.717"></a>
-<span class="sourceLineNo">718</span>    RSGroupStartupWorker() {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      setDaemon(true);<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    }<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    @Override<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    public void run() {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      setName(RSGroupStartupWorker.class.getName() + "-" + masterServices.getServerName());<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      if (waitForGroupTableOnline()) {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        LOG.info("GroupBasedLoadBalancer is now online");<a name="line.726"></a>
-<span class="sourceLineNo">727</span>      }<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    }<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>    private boolean waitForGroupTableOnline() {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final List&lt;RegionInfo&gt; foundRegions = new LinkedList&lt;&gt;();<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      final List&lt;RegionInfo&gt; assignedRegions = new LinkedList&lt;&gt;();<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      final AtomicBoolean found = new AtomicBoolean(false);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      final TableStateManager tsm = masterServices.getTableStateManager();<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      boolean createSent = false;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      while (!found.get() &amp;&amp; isMasterRunning(masterServices)) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>        foundRegions.clear();<a name="line.737"></a>
-<span class="sourceLineNo">738</span>        assignedRegions.clear();<a name="line.738"></a>
-<span class="sourceLineNo">739</span>        found.set(true);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>        try {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>          conn.getTable(TableName.NAMESPACE_TABLE_NAME);<a name="line.741"></a>
-<span class="sourceLineNo">742</span>          conn.getTable(RSGROUP_TABLE_NAME);<a name="line.742"></a>
-<span class="sourceLineNo">743</span>          boolean rootMetaFound =<a name="line.743"></a>
-<span class="sourceLineNo">744</span>              masterServices.getMetaTableLocator().verifyMetaRegionLocation(<a name="line.744"></a>
-<span class="sourceLineNo">745</span>                  conn, masterServices.getZooKeeper(), 1);<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          final AtomicBoolean nsFound = new AtomicBoolean(false);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>          if (rootMetaFound) {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>            MetaTableAccessor.Visitor visitor = new DefaultVisitorBase() {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>              @Override<a name="line.749"></a>
-<span class="sourceLineNo">750</span>              public boolean visitInternal(Result row) throws IOException {<a name="line.750"></a>
-<span class="sourceLineNo">751</span>                RegionInfo info = MetaTableAccessor.getRegionInfo(row);<a name="line.751"></a>
-<span class="sourceLineNo">752</span>                if (info != null) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>                  Cell serverCell =<a name="line.753"></a>
-<span class="sourceLineNo">754</span>                      row.getColumnLatestCell(HConstants.CATALOG_FAMILY,<a name="line.754"></a>
-<span class="sourceLineNo">755</span>                          HConstants.SERVER_QUALIFIER);<a name="line.755"></a>
-<span class="sourceLineNo">756</span>                  if (RSGROUP_TABLE_NAME.equals(info.getTable()) &amp;&amp; serverCell != null) {<a name="line.756"></a>
-<span class="sourceLineNo">757</span>                    ServerName sn =<a name="line.757"></a>
-<span class="sourceLineNo">758</span>                        ServerName.parseVersionedServerName(CellUtil.cloneValue(serverCell));<a name="line.758"></a>
-<span class="sourceLineNo">759</span>                    if (sn == null) {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>                      found.set(false);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>                    } else if (tsm.isTableState(RSGROUP_TABLE_NAME, TableState.State.ENABLED)) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>                      try {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                        ClientProtos.ClientService.BlockingInterface rs = conn.getClient(sn);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                        ClientProtos.GetRequest request =<a name="line.764"></a>
-<span class="sourceLineNo">765</span>                            RequestConverter.buildGetRequest(info.getRegionName(),<a name="line.765"></a>
-<span class="sourceLineNo">766</span>                                new Get(ROW_KEY));<a name="line.766"></a>
-<span class="sourceLineNo">767</span>                        rs.get(null, request);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>                        assignedRegions.add(info);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>                      } catch(Exception ex) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>                        LOG.debug("Caught exception while verifying group region", ex);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>                      }<a name="line.771"></a>
-<span class="sourceLineNo">772</span>                    }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>                    foundRegions.add(info);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>                  }<a name="line.774"></a>
-<span class="sourceLineNo">775</span>                  if (TableName.NAMESPACE_TABLE_NAME.equals(info.getTable())) {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>                    Cell cell = row.getColumnLatestCell(HConstants.CATALOG_FAMILY,<a name="line.776"></a>
-<span class="sourceLineNo">777</span>                        HConstants.SERVER_QUALIFIER);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>                    ServerName sn = null;<a name="line.778"></a>
-<span class="sourceLineNo">779</span>                    if(cell != null) {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>                      sn = ServerName.parseVersionedServerName(CellUtil.cloneValue(cell));<a name="line.780"></a>
-<span class="sourceLineNo">781</span>                    }<a name="line.781"></a>
-<span class="sourceLineNo">782</span>                    if (sn == null) {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>                      nsFound.set(false);<a name="line.783"></a>
-<span class="sourceLineNo">784</span>                    } else if (tsm.isTableState(TableName.NAMESPACE_TABLE_NAME,<a name="line.784"></a>
-<span class="sourceLineNo">785</span>                        TableState.State.ENABLED)) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>                      try {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>                        ClientProtos.ClientService.BlockingInterface rs = conn.getClient(sn);<a name="line.787"></a>
-<span class="sourceLineNo">788</span>                        ClientProtos.GetRequest request =<a name="line.788"></a>
-<span class="sourceLineNo">789</span>                            RequestConverter.buildGetRequest(info.getRegionName(),<a name="line.789"></a>
-<span class="sourceLineNo">790</span>                                new Get(ROW_KEY));<a name="line.790"></a>
-<span class="sourceLineNo">791</span>                        rs.get(null, request);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>                        nsFound.set(true);<a name="line.792"></a>
-<span class="sourceLineNo">793</span>                      } catch(Exception ex) {<a name="line.793"></a>
-<span class="sourceLineNo">794</span>                        LOG.debug("Caught exception while verifying group region", ex);<a name="line.794"></a>
-<span class="sourceLineNo">795</span>                      }<a name="line.795"></a>
-<span class="sourceLineNo">796</span>                    }<a name="line.796"></a>
-<span class="sourceLineNo">797</span>                  }<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                }<a name="line.798"></a>
-<span class="sourceLineNo">799</span>                return true;<a name="line.799"></a>
-<span class="sourceLineNo">800</span>              }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>            };<a name="line.801"></a>
-<span class="sourceLineNo">802</span>            MetaTableAccessor.fullScanRegions(conn, visitor);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>            // if no regions in meta then we have to create the table<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            if (foundRegions.size() &lt; 1 &amp;&amp; rootMetaFound &amp;&amp; !createSent &amp;&amp; nsFound.get()) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>              createRSGroupTable();<a name="line.805"></a>
-<span class="sourceLineNo">806</span>              createSent = true;<a name="line.806"></a>
-<span class="sourceLineNo">807</span>            }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            LOG.info("RSGroup table=" + RSGROUP_TABLE_NAME + " isOnline=" + found.get()<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                + ", regionCount=" + foundRegions.size() + ", assignCount="<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                + assignedRegions.size() + ", rootMetaFound=" + rootMetaFound);<a name="line.810"></a>
-<span class="sourceLineNo">811</span>            found.set(found.get() &amp;&amp; assignedRegions.size() == foundRegions.size()<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                &amp;&amp; foundRegions.size() &gt; 0);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          } else {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>            LOG.info("Waiting for catalog tables to come online");<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            found.set(false);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>          }<a name="line.816"></a>
-<span class="sourceLineNo">817</span>          if (found.get()) {<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            LOG.debug("With group table online, refreshing cached information.");<a name="line.818"></a>
-<span class="sourceLineNo">819</span>            RSGroupInfoManagerImpl.this.refresh(true);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            online = true;<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            //flush any inconsistencies between ZK and HTable<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            RSGroupInfoManagerImpl.this.flushConfig();<a name="line.822"></a>
-<span class="sourceLineNo">823</span>          }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>        } catch (RuntimeException e) {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>          throw e;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>        } catch(Exception e) {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          found.set(false);<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          LOG.warn("Failed to perform check", e);<a name="line.828"></a>
-<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
-<span class="sourceLineNo">830</span>        try {<a name="line.830"></a>
-<span class="sourceLineNo">831</span>          Thread.sleep(100);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>        } catch (InterruptedException e) {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          LOG.info("Sleep interrupted", e);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      }<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      return found.get();<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>    private void createRSGroupTable() throws IOException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>      Long procId = masterServices.createSystemTable(RSGROUP_TABLE_DESC);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      // wait for region to be online<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      int tries = 600;<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      while (!(masterServices.getMasterProcedureExecutor().isFinished(procId))<a name="line.843"></a>
-<span class="sourceLineNo">844</span>          &amp;&amp; masterServices.getMasterProcedureExecutor().isRunning()<a name="line.844"></a>
-<span class="sourceLineNo">845</span>          &amp;&amp; tries &gt; 0) {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>        try {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          Thread.sleep(100);<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } catch (InterruptedException e) {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new IOException("Wait interrupted ", e);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        tries--;<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      if(tries &lt;= 0) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        throw new IOException("Failed to create group table in a given time.");<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      } else {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        Procedure&lt;?&gt; result = masterServices.getMasterProcedureExecutor().getResult(procId);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        if (result != null &amp;&amp; result.isFailed()) {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>          throw new IOException("Failed to create group table. " +<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            result.getException().unwrapRemoteIOException());<a name="line.859"></a>
+<span class="sourceLineNo">583</span>      if (!found) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        defaultServers.add(server);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    return defaultServers;<a name="line.587"></a>
+<span class="sourceLineNo">588</span>  }<a name="line.588"></a>
+<span class="sourceLineNo">589</span><a name="line.589"></a>
+<span class="sourceLineNo">590</span>  // Called by ServerEventsListenerThread. Synchronize on this because redoing<a name="line.590"></a>
+<span class="sourceLineNo">591</span>  // the rsGroupMap then writing it out.<a name="line.591"></a>
+<span class="sourceLineNo">592</span>  private synchronized void updateDefaultServers(SortedSet&lt;Address&gt; servers) throws IOException {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    RSGroupInfo info = rsGroupMap.get(RSGroupInfo.DEFAULT_GROUP);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    RSGroupInfo newInfo = new RSGroupInfo(info.getName(), servers, info.getTables());<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    newGroupMap.put(newInfo.getName(), newInfo);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    flushConfig(newGroupMap);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>  }<a name="line.598"></a>
+<span class="sourceLineNo">599</span><a name="line.599"></a>
+<span class="sourceLineNo">600</span>  // Called by FailedOpenUpdaterThread<a name="line.600"></a>
+<span class="sourceLineNo">601</span>  private void updateFailedAssignments() {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    // Kick all regions in FAILED_OPEN state<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    List&lt;RegionInfo&gt; stuckAssignments = Lists.newArrayList();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    for (RegionStateNode state:<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        masterServices.getAssignmentManager().getRegionStates().getRegionsInTransition()) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      if (state.isStuck()) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        stuckAssignments.add(state.getRegionInfo());<a name="line.607"></a>
+<span class="sourceLineNo">608</span>      }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    for (RegionInfo region: stuckAssignments) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      LOG.info("Retrying assignment of " + region);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      try {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        masterServices.getAssignmentManager().unassign(region);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      } catch (IOException e) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        LOG.warn("Unable to reassign " + region, e);<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    }<a name="line.617"></a>
+<span class="sourceLineNo">618</span>  }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span>  /**<a name="line.620"></a>
+<span class="sourceLineNo">621</span>   * Calls {@link RSGroupInfoManagerImpl#updateDefaultServers(SortedSet)} to update list of known<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * servers. Notifications about server changes are received by registering {@link ServerListener}.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * As a listener, we need to return immediately, so the real work of updating the servers is<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * done asynchronously in this thread.<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   */<a name="line.625"></a>
+<span class="sourceLineNo">626</span>  private class ServerEventsListenerThread extends Thread implements ServerListener {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    private final Log LOG = LogFactory.getLog(ServerEventsListenerThread.class);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    private boolean changed = false;<a name="line.628"></a>
+<span class="sourceLineNo">629</span><a name="line.629"></a>
+<span class="sourceLineNo">630</span>    ServerEventsListenerThread() {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      setDaemon(true);<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    }<a name="line.632"></a>
+<span class="sourceLineNo">633</span><a name="line.633"></a>
+<span class="sourceLineNo">634</span>    @Override<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    public void serverAdded(ServerName serverName) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      serverChanged();<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    @Override<a name="line.639"></a>
+<span class="sourceLineNo">640</span>    public void serverRemoved(ServerName serverName) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>      serverChanged();<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    }<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>    private synchronized void serverChanged() {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      changed = true;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      this.notify();<a name="line.646"></a>
+<span class="sourceLineNo">647</span>    }<a name="line.647"></a>
+<span class="sourceLineNo">648</span><a name="line.648"></a>
+<span class="sourceLineNo">649</span>    @Override<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    public void run() {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>      setName(ServerEventsListenerThread.class.getName() + "-" + masterServices.getServerName());<a name="line.651"></a>
+<span class="sourceLineNo">652</span>      SortedSet&lt;Address&gt; prevDefaultServers = new TreeSet&lt;&gt;();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      while(isMasterRunning(masterServices)) {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        try {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>          L

<TRUNCATED>

[03/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWAL.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWAL.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWAL.html
index adad728..31be8ef 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWAL.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWAL.html
@@ -71,7 +71,7 @@
 <span class="sourceLineNo">063</span>      Configuration conf, List&lt;WALActionsListener&gt; listeners, boolean failIfWALExists,<a name="line.63"></a>
 <span class="sourceLineNo">064</span>      String prefix, String suffix) throws IOException {<a name="line.64"></a>
 <span class="sourceLineNo">065</span>    return new AsyncFSWAL(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix,<a name="line.65"></a>
-<span class="sourceLineNo">066</span>        suffix, GROUP.next(), CHANNEL_CLASS);<a name="line.66"></a>
+<span class="sourceLineNo">066</span>        suffix, GROUP, CHANNEL_CLASS);<a name="line.66"></a>
 <span class="sourceLineNo">067</span>  }<a name="line.67"></a>
 <span class="sourceLineNo">068</span><a name="line.68"></a>
 <span class="sourceLineNo">069</span>  @Override<a name="line.69"></a>
@@ -80,7 +80,7 @@
 <span class="sourceLineNo">072</span>      boolean failIfWALExists, String prefix, String suffix, final Runnable action)<a name="line.72"></a>
 <span class="sourceLineNo">073</span>      throws IOException {<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    return new AsyncFSWAL(fs, rootDir, logDir, archiveDir, conf, listeners, failIfWALExists, prefix,<a name="line.74"></a>
-<span class="sourceLineNo">075</span>        suffix, GROUP.next(), CHANNEL_CLASS) {<a name="line.75"></a>
+<span class="sourceLineNo">075</span>        suffix, GROUP, CHANNEL_CLASS) {<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
 <span class="sourceLineNo">077</span>      @Override<a name="line.77"></a>
 <span class="sourceLineNo">078</span>      void atHeadOfRingBufferEventHandlerAppend() {<a name="line.78"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplay.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplay.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplay.html
index 2f2148e..f0b0fbc 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplay.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplay.html
@@ -70,7 +70,7 @@
 <span class="sourceLineNo">062</span>  @Override<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  protected WAL createWAL(Configuration c, Path hbaseRootDir, String logName) throws IOException {<a name="line.63"></a>
 <span class="sourceLineNo">064</span>    return new AsyncFSWAL(FileSystem.get(c), hbaseRootDir, logName,<a name="line.64"></a>
-<span class="sourceLineNo">065</span>        HConstants.HREGION_OLDLOGDIR_NAME, c, null, true, null, null, GROUP.next(), CHANNEL_CLASS);<a name="line.65"></a>
+<span class="sourceLineNo">065</span>        HConstants.HREGION_OLDLOGDIR_NAME, c, null, true, null, null, GROUP, CHANNEL_CLASS);<a name="line.65"></a>
 <span class="sourceLineNo">066</span>  }<a name="line.66"></a>
 <span class="sourceLineNo">067</span>}<a name="line.67"></a>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
index 506bb21..e54775a 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/rsgroup/TestRSGroups.html
@@ -82,10 +82,10 @@
 <span class="sourceLineNo">074</span>        RSGroupBasedLoadBalancer.class.getName());<a name="line.74"></a>
 <span class="sourceLineNo">075</span>    TEST_UTIL.getConfiguration().set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,<a name="line.75"></a>
 <span class="sourceLineNo">076</span>        RSGroupAdminEndpoint.class.getName());<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    TEST_UTIL.startMiniCluster(NUM_SLAVES_BASE);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    TEST_UTIL.getConfiguration().set(<a name="line.78"></a>
+<span class="sourceLineNo">077</span>    TEST_UTIL.startMiniCluster(NUM_SLAVES_BASE - 1);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    TEST_UTIL.getConfiguration().setInt(<a name="line.78"></a>
 <span class="sourceLineNo">079</span>        ServerManager.WAIT_ON_REGIONSERVERS_MINTOSTART,<a name="line.79"></a>
-<span class="sourceLineNo">080</span>        ""+NUM_SLAVES_BASE);<a name="line.80"></a>
+<span class="sourceLineNo">080</span>        NUM_SLAVES_BASE - 1);<a name="line.80"></a>
 <span class="sourceLineNo">081</span>    TEST_UTIL.getConfiguration().setBoolean(SnapshotManager.HBASE_SNAPSHOT_ENABLED, true);<a name="line.81"></a>
 <span class="sourceLineNo">082</span><a name="line.82"></a>
 <span class="sourceLineNo">083</span>    admin = TEST_UTIL.getAdmin();<a name="line.83"></a>


[13/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/source-repository.html b/hbase-annotations/source-repository.html
index 8916273..af95766 100644
--- a/hbase-annotations/source-repository.html
+++ b/hbase-annotations/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-annotations/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/team-list.html b/hbase-annotations/team-list.html
index 6f5af3b..40832e9 100644
--- a/hbase-annotations/team-list.html
+++ b/hbase-annotations/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependencies.html b/hbase-build-configuration/dependencies.html
index 0bf999f..2633511 100644
--- a/hbase-build-configuration/dependencies.html
+++ b/hbase-build-configuration/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-convergence.html b/hbase-build-configuration/dependency-convergence.html
index dcf7db0..0c30f75 100644
--- a/hbase-build-configuration/dependency-convergence.html
+++ b/hbase-build-configuration/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-info.html b/hbase-build-configuration/dependency-info.html
index dddd3db..332dea4 100644
--- a/hbase-build-configuration/dependency-info.html
+++ b/hbase-build-configuration/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-management.html b/hbase-build-configuration/dependency-management.html
index 953ff19..ca04840 100644
--- a/hbase-build-configuration/dependency-management.html
+++ b/hbase-build-configuration/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependencies.html b/hbase-build-configuration/hbase-archetypes/dependencies.html
index 430d5c8..3010e64 100644
--- a/hbase-build-configuration/hbase-archetypes/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
index 889c176..549e80f 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-info.html b/hbase-build-configuration/hbase-archetypes/dependency-info.html
index 53fc4fa..f36d77a 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-management.html b/hbase-build-configuration/hbase-archetypes/dependency-management.html
index 6533daf..f9c327d 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
index 99102cc..0ef87fc 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
index 33a942c..daf9c44 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
index 19427c0..580e63e 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
index 8616a6b..f0eed41 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
index 8a1193f..95b9772 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
index 342fb8e..ca9a8b0 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
index 03d3c1b..dd27854 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
index 01b8bb4..096663a 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
index 062033e..31e26eb 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
index 8142aeb..7a17368 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
index 4d9f997..4b299a2 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -218,7 +218,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
index bf04081..ff3826b 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
index 2932551..b0b354b 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
index f3702fa..6361d47 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
index c862145..981c8be 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
index 08a0184..704146f 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -244,7 +244,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
index d07eaed..dca002a 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -4144,7 +4144,7 @@ The following provides more details on the included cryptographic software:
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
index 9711039..5db2be2 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
index bc59b9e..35a73c1 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
index 0b1a6d1..ba37275 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
index 6fdb9ca..be3a1fd 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
index 003a0a0..be42ae4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
index 53b4198..bdbe0f4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
index 76c06a6..2225d6b 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
index 8136537..bf9c2b4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
index 71cabd6..a706447 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
index 0ec769c..d569287 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
index 8d89f3e..eca336e 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
index bcbfe2a..d9589a4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
index d93c39c..742e491 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
index 1d87bb4..59a87fc 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
index 20b7932..d1ce90f 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
index ccc8614..a040909 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -244,7 +244,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
index 7733116..f6ea2fc 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -4169,7 +4169,7 @@ built on Jackson JSON processor</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
index e3497e9..2a85d96 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
index 2bb7476..487047b 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
index b7186ec..3e38821 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
index 64df8a4..80a34b8 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
index 0d12721..aa3b047 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
index 6d3c8dd..6628363 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
index 3204c85..2d189bd 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
index e0d6a23..8802128 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
index 9ea4f98..60944bb 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
index 8a7e3eb..583082b 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
index ae2cf0f..315baa4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
index ca18fc5..41b32d6 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
index a1df561..d369036 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
index 5c2a439..11a1ac6 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
index 61e6c65..e591d06 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/hbase-build-configuration/hbase-archetypes/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/index.html b/hbase-build-configuration/hbase-archetypes/index.html
index 6f21ab3..d7c3225 100644
--- a/hbase-build-configuration/hbase-archetypes/index.html
+++ b/hbase-build-configuration/hbase-archetypes/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -135,7 +135,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 


[38/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html
index c4f82c7..a75cd57 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.53">FSWALEntry</a>
+class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.52">FSWALEntry</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a></pre>
 <div class="block">A WAL Entry for <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>AbstractFSWAL</code></a> implementation.  Immutable.
  A subclass of <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal"><code>WAL.Entry</code></a> that carries extra info across the ring buffer such as
@@ -154,10 +154,6 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#regionInfo">regionInfo</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private org.apache.htrace.core.Span</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#span">span</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#txid">txid</a></span></code>&nbsp;</td>
 </tr>
@@ -198,40 +194,32 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>(package private) void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#attachSpan-org.apache.htrace.core.Span-">attachSpan</a></span>(org.apache.htrace.core.Span&nbsp;span)</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
 <td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#collectFamilies-java.util.List-">collectFamilies</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;cells)</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>(package private) org.apache.htrace.core.Span</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#detachSpan--">detachSpan</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i3" class="rowColor">
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#getFamilyNames--">getFamilyNames</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#getRegionInfo--">getRegionInfo</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>(package private) long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#getTxid--">getTxid</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#isInMemStore--">isInMemStore</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>(package private) long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#stampRegionSequenceId-org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.WriteEntry-">stampRegionSequenceId</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;we)</code>
 <div class="block">Here is where a WAL edit gets its sequenceid.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
@@ -270,7 +258,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>txid</h4>
-<pre>private final transient&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.56">txid</a></pre>
+<pre>private final transient&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.55">txid</a></pre>
 </li>
 </ul>
 <a name="inMemstore">
@@ -279,7 +267,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>inMemstore</h4>
-<pre>private final transient&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.57">inMemstore</a></pre>
+<pre>private final transient&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.56">inMemstore</a></pre>
 </li>
 </ul>
 <a name="regionInfo">
@@ -288,25 +276,16 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>regionInfo</h4>
-<pre>private final transient&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.58">regionInfo</a></pre>
+<pre>private final transient&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.57">regionInfo</a></pre>
 </li>
 </ul>
 <a name="familyNames">
 <!--   -->
 </a>
-<ul class="blockList">
-<li class="blockList">
-<h4>familyNames</h4>
-<pre>private final transient&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.59">familyNames</a></pre>
-</li>
-</ul>
-<a name="span">
-<!--   -->
-</a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>span</h4>
-<pre>private transient&nbsp;org.apache.htrace.core.Span <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.62">span</a></pre>
+<h4>familyNames</h4>
+<pre>private final transient&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.58">familyNames</a></pre>
 </li>
 </ul>
 </li>
@@ -323,7 +302,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FSWALEntry</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.64">FSWALEntry</a>(long&nbsp;txid,
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.60">FSWALEntry</a>(long&nbsp;txid,
            <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKey.html" title="class in org.apache.hadoop.hbase.wal">WALKey</a>&nbsp;key,
            <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edit,
            <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
@@ -344,7 +323,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>collectFamilies</h4>
-<pre>static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.79">collectFamilies</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;cells)</pre>
+<pre>static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.75">collectFamilies</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;cells)</pre>
 </li>
 </ul>
 <a name="toString--">
@@ -353,7 +332,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.92">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.88">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html#toString--">toString</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a></code></dd>
@@ -366,7 +345,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>isInMemStore</h4>
-<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.96">isInMemStore</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.92">isInMemStore</a>()</pre>
 </li>
 </ul>
 <a name="getRegionInfo--">
@@ -375,7 +354,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.100">getRegionInfo</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.96">getRegionInfo</a>()</pre>
 </li>
 </ul>
 <a name="getTxid--">
@@ -384,7 +363,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getTxid</h4>
-<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.107">getTxid</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.103">getTxid</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The transaction id of this edit.</dd>
@@ -397,7 +376,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>stampRegionSequenceId</h4>
-<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.116">stampRegionSequenceId</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;we)
+<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.112">stampRegionSequenceId</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.WriteEntry.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl.WriteEntry</a>&nbsp;we)
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Here is where a WAL edit gets its sequenceid. SIDE-EFFECT is our stamping the sequenceid into
  every Cell AND setting the sequenceid into the MVCC WriteEntry!!!!</div>
@@ -412,34 +391,16 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" t
 <a name="getFamilyNames--">
 <!--   -->
 </a>
-<ul class="blockList">
+<ul class="blockListLast">
 <li class="blockList">
 <h4>getFamilyNames</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.130">getFamilyNames</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.126">getFamilyNames</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the family names which are effected by this edit.</dd>
 </dl>
 </li>
 </ul>
-<a name="attachSpan-org.apache.htrace.core.Span-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>attachSpan</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.134">attachSpan</a>(org.apache.htrace.core.Span&nbsp;span)</pre>
-</li>
-</ul>
-<a name="detachSpan--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>detachSpan</h4>
-<pre>org.apache.htrace.core.Span&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#line.138">detachSpan</a>()</pre>
-</li>
-</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html
index 032e6ae..fd4720b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static enum <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.33">RingBufferTruck.Type</a>
+<pre>public static enum <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.32">RingBufferTruck.Type</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a>&gt;</pre>
 </li>
 </ul>
@@ -213,7 +213,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>APPEND</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html#line.34">APPEND</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html#line.33">APPEND</a></pre>
 </li>
 </ul>
 <a name="SYNC">
@@ -222,7 +222,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>SYNC</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html#line.34">SYNC</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html#line.33">SYNC</a></pre>
 </li>
 </ul>
 <a name="EMPTY">
@@ -231,7 +231,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EMPTY</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html#line.34">EMPTY</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html#line.33">EMPTY</a></pre>
 </li>
 </ul>
 </li>
@@ -248,7 +248,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html#line.88">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html#line.86">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -268,7 +268,7 @@ for (RingBufferTruck.Type c : RingBufferTruck.Type.values())
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html#line.88">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html#line.86">valueOf</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html
index 0e95e25..fedf451 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.31">RingBufferTruck</a>
+final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.30">RingBufferTruck</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">A 'truck' to carry a payload across the ring buffer from Handler to WAL. Has EITHER a
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSWALEntry</code></a> for making an append OR it has a <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>SyncFuture</code></a> to represent a 'sync'
@@ -201,9 +201,8 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#load-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-org.apache.htrace.core.Span-">load</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry,
-    org.apache.htrace.core.Span&nbsp;span)</code>
-<div class="block">Load the truck with a <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSWALEntry</code></a> and associated <code>Span</code>.</div>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#load-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-">load</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)</code>
+<div class="block">Load the truck with a <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSWALEntry</code></a>.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
@@ -256,7 +255,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>type</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.37">type</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.36">type</a></pre>
 </li>
 </ul>
 <a name="sync">
@@ -265,7 +264,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>sync</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.42">sync</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.41">sync</a></pre>
 <div class="block">Either this syncFuture is set or entry is set, but not both.</div>
 </li>
 </ul>
@@ -275,7 +274,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>entry</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.43">entry</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.42">entry</a></pre>
 </li>
 </ul>
 </li>
@@ -292,7 +291,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RingBufferTruck</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.31">RingBufferTruck</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.30">RingBufferTruck</a>()</pre>
 </li>
 </ul>
 </li>
@@ -303,15 +302,14 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="load-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-org.apache.htrace.core.Span-">
+<a name="load-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>load</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.48">load</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry,
-          org.apache.htrace.core.Span&nbsp;span)</pre>
-<div class="block">Load the truck with a <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSWALEntry</code></a> and associated <code>Span</code>.</div>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.47">load</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)</pre>
+<div class="block">Load the truck with a <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSWALEntry</code></a>.</div>
 </li>
 </ul>
 <a name="load-org.apache.hadoop.hbase.regionserver.wal.SyncFuture-">
@@ -320,7 +318,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>load</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.57">load</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;syncFuture)</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.55">load</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;syncFuture)</pre>
 <div class="block">Load the truck with a <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>SyncFuture</code></a>.</div>
 </li>
 </ul>
@@ -330,7 +328,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>type</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.65">type</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck.Type</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.63">type</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the type of this truck's payload.</dd>
@@ -343,7 +341,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>unloadAppend</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.72">unloadAppend</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.70">unloadAppend</a>()</pre>
 <div class="block">Unload the truck of its <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSWALEntry</code></a> payload. The internal reference is released.</div>
 </li>
 </ul>
@@ -353,7 +351,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>unloadSync</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.82">unloadSync</a>()</pre>
+<pre><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#line.80">unloadSync</a>()</pre>
 <div class="block">Unload the truck of its <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>SyncFuture</code></a> payload. The internal reference is released.</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
index 6fc7f1d..76b8adb 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html
@@ -170,7 +170,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Asyn
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#SecureAsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">SecureAsyncProtobufLogWriter</a></span>(org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#SecureAsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">SecureAsyncProtobufLogWriter</a></span>(org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>&nbsp;</td>
 </tr>
 </table>
@@ -268,13 +268,13 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Asyn
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="SecureAsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">
+<a name="SecureAsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SecureAsyncProtobufLogWriter</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#line.36">SecureAsyncProtobufLogWriter</a>(org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#line.36">SecureAsyncProtobufLogWriter</a>(org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)</pre>
 </li>
 </ul>
@@ -292,7 +292,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Asyn
 <ul class="blockList">
 <li class="blockList">
 <h4>buildWALHeader</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#line.41">buildWALHeader</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#line.42">buildWALHeader</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                                                                org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALHeader.Builder&nbsp;builder)
                                                                                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -309,7 +309,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Asyn
 <ul class="blockList">
 <li class="blockList">
 <h4>setEncryptor</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#line.47">setEncryptor</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Encryptor</a>&nbsp;encryptor)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#line.48">setEncryptor</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/crypto/Encryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto">Encryptor</a>&nbsp;encryptor)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html#setEncryptor-org.apache.hadoop.hbase.io.crypto.Encryptor-">setEncryptor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractProtobufLogWriter</a></code></dd>
@@ -322,7 +322,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Asyn
 <ul class="blockListLast">
 <li class="blockList">
 <h4>initAfterHeader</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#line.52">initAfterHeader</a>(boolean&nbsp;doCompress)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#line.53">initAfterHeader</a>(boolean&nbsp;doCompress)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/FSWALEntry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/FSWALEntry.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/FSWALEntry.html
index b44eb0a..f313971 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/FSWALEntry.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/FSWALEntry.html
@@ -175,9 +175,8 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
-<td class="colLast"><span class="typeNameLabel">RingBufferTruck.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#load-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-org.apache.htrace.core.Span-">load</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry,
-    org.apache.htrace.core.Span&nbsp;span)</code>
-<div class="block">Load the truck with a <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSWALEntry</code></a> and associated <code>Span</code>.</div>
+<td class="colLast"><span class="typeNameLabel">RingBufferTruck.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#load-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-">load</a></span>(<a href="../../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)</code>
+<div class="block">Load the truck with a <a href="../../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSWALEntry</code></a>.</div>
 </td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/FailedLogCloseException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/FailedLogCloseException.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/FailedLogCloseException.html
index 424392e..db4c31c 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/FailedLogCloseException.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/FailedLogCloseException.html
@@ -191,7 +191,7 @@
              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;suffix)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#AsyncFSWAL-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">AsyncFSWAL</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#AsyncFSWAL-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">AsyncFSWAL</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
           org.apache.hadoop.fs.Path&nbsp;rootDir,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logDir,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;archiveDir,
@@ -200,7 +200,7 @@
           boolean&nbsp;failIfWALExists,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;suffix,
-          org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+          org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>&nbsp;</td>
 </tr>
 </tbody>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/WALActionsListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/WALActionsListener.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/WALActionsListener.html
index 9ee9595..1f976b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/WALActionsListener.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/class-use/WALActionsListener.html
@@ -196,7 +196,7 @@
              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;suffix)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#AsyncFSWAL-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">AsyncFSWAL</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#AsyncFSWAL-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">AsyncFSWAL</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
           org.apache.hadoop.fs.Path&nbsp;rootDir,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logDir,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;archiveDir,
@@ -205,7 +205,7 @@
           boolean&nbsp;failIfWALExists,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;suffix,
-          org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+          org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index e301d2d..9af5695 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -242,8 +242,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
index 91776e4..dc2f127 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -110,8 +110,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html
index 510e383..b4cf240 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -190,6 +190,12 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <div class="block">Removes RegionServer group associated with the given name.</div>
 </td>
 </tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Remove decommissioned servers from rsgroup.</div>
+</td>
+</tr>
 </table>
 </li>
 </ul>
@@ -350,7 +356,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <a name="moveServersAndTables-java.util.Set-java.util.Set-java.lang.String-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>moveServersAndTables</h4>
 <pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#line.89">moveServersAndTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
@@ -368,6 +374,27 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 </dl>
 </li>
 </ul>
+<a name="removeServers-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeServers</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#line.100">removeServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Remove decommissioned servers from rsgroup.
+ 1. Sometimes we may find the server aborted due to some hardware failure and we must offline
+ the server for repairing. Or we need to move some servers to join other clusters.
+ So we need to remove these servers from the rsgroup.
+ 2. Dead/recovering/live servers will be disallowed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>servers</code> - set of servers to remove</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html
index c145ad2..41059c7 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.54">RSGroupAdminClient</a>
+class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.55">RSGroupAdminClient</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupAdmin</a></pre>
 <div class="block">Client used for managing region server group information.</div>
@@ -236,6 +236,12 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <div class="block">Removes RegionServer group associated with the given name.</div>
 </td>
 </tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Remove decommissioned servers from rsgroup.</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -264,7 +270,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stub</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.55">stub</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.56">stub</a></pre>
 </li>
 </ul>
 </li>
@@ -281,7 +287,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSGroupAdminClient</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.57">RSGroupAdminClient</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn)
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.58">RSGroupAdminClient</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;conn)
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -303,7 +309,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.62">getRSGroupInfo</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.63">getRSGroupInfo</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#getRSGroupInfo-java.lang.String-">RSGroupAdmin</a></code></span></div>
 <div class="block">Gets <code>RSGroupInfo</code> for given group name.</div>
@@ -321,7 +327,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupInfoOfTable</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.76">getRSGroupInfoOfTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.77">getRSGroupInfoOfTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#getRSGroupInfoOfTable-org.apache.hadoop.hbase.TableName-">RSGroupAdmin</a></code></span></div>
 <div class="block">Gets <code>RSGroupInfo</code> for the given table's group.</div>
@@ -339,7 +345,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>moveServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.91">moveServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.92">moveServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#moveServers-java.util.Set-java.lang.String-">RSGroupAdmin</a></code></span></div>
@@ -358,7 +364,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>moveTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.111">moveTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.112">moveTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#moveTables-java.util.Set-java.lang.String-">RSGroupAdmin</a></code></span></div>
@@ -378,7 +384,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>addRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.124">addRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.125">addRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#addRSGroup-java.lang.String-">RSGroupAdmin</a></code></span></div>
 <div class="block">Creates a new RegionServer group with the given name.</div>
@@ -396,7 +402,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>removeRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.134">removeRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.135">removeRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#removeRSGroup-java.lang.String-">RSGroupAdmin</a></code></span></div>
 <div class="block">Removes RegionServer group associated with the given name.</div>
@@ -414,7 +420,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceRSGroup</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.144">balanceRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.145">balanceRSGroup</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#balanceRSGroup-java.lang.String-">RSGroupAdmin</a></code></span></div>
 <div class="block">Balance regions in the given RegionServer group.</div>
@@ -434,7 +440,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>listRSGroups</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.155">listRSGroups</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.156">listRSGroups</a>()
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#listRSGroups--">RSGroupAdmin</a></code></span></div>
 <div class="block">Lists current set of RegionServer groups.</div>
@@ -452,7 +458,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupOfServer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.170">getRSGroupOfServer</a>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;hostPort)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.171">getRSGroupOfServer</a>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;hostPort)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#getRSGroupOfServer-org.apache.hadoop.hbase.net.Address-">RSGroupAdmin</a></code></span></div>
 <div class="block">Retrieve the RSGroupInfo a server is affiliated to</div>
@@ -469,10 +475,10 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <a name="moveServersAndTables-java.util.Set-java.util.Set-java.lang.String-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>moveServersAndTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.189">moveServersAndTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.190">moveServersAndTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -490,6 +496,30 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 </dl>
 </li>
 </ul>
+<a name="removeServers-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#line.211">removeServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#removeServers-java.util.Set-">RSGroupAdmin</a></code></span></div>
+<div class="block">Remove decommissioned servers from rsgroup.
+ 1. Sometimes we may find the server aborted due to some hardware failure and we must offline
+ the server for repairing. Or we need to move some servers to join other clusters.
+ So we need to remove these servers from the rsgroup.
+ 2. Dead/recovering/live servers will be disallowed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#removeServers-java.util.Set-">removeServers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupAdmin</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>servers</code> - set of servers to remove</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>


[44/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
index 840db49..8ac4e0a 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
@@ -848,13 +848,20 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
+<td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Called after servers are removed from rsgroup</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postReplayWALs-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.fs.Path-">postReplayWALs</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;? extends <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info,
               org.apache.hadoop.fs.Path&nbsp;edits)</code>
 <div class="block">Called after replaying WALs for this region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionServerObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerObserver.html#postReplicateLogEntries-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postReplicateLogEntries</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
@@ -863,7 +870,7 @@
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -873,7 +880,7 @@
 <div class="block">Called after new LockProcedure is queued.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                    <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -881,33 +888,33 @@
 <div class="block">Called after a snapshot restore operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge)</code>
 <div class="block">This will be called after the roll back of the regions merge.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called after the roll back of the split region is completed</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionServerObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerObserver.html#postRollWALWriterRequest-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollWALWriterRequest</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called after executing user request to roll a region server WAL.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postScannerClose-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.InternalScanner-">postScannerClose</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s)</code>
 <div class="block">Called after the client closes a scanner.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postScannerFilterRow-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.InternalScanner-org.apache.hadoop.hbase.Cell-boolean-">postScannerFilterRow</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                     <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s,
@@ -917,7 +924,7 @@
  filter.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postScannerNext-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.InternalScanner-java.util.List-int-boolean-">postScannerNext</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s,
@@ -927,7 +934,7 @@
 <div class="block">Called after the client asks for the next row on a scanner.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postScannerOpen-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.RegionScanner-">postScannerOpen</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
@@ -935,7 +942,7 @@
 <div class="block">Called after the client opens a new scanner.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -943,7 +950,7 @@
 <div class="block">Called after the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                           boolean&nbsp;newValue,
@@ -951,7 +958,7 @@
 <div class="block">Called after setting split / merge switch</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -959,7 +966,7 @@
 <div class="block">Called after the quota for the table is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -967,7 +974,7 @@
 <div class="block">Called after the quota for the user is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -976,7 +983,7 @@
 <div class="block">Called after the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -985,7 +992,7 @@
 <div class="block">Called after the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
             <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -993,14 +1000,14 @@
 <div class="block">Called after the snapshot operation has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called immediately after an active master instance has completed
  initialization.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postStartRegionOperation-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.Region.Operation-">postStartRegionOperation</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver">Region.Operation</a>&nbsp;operation)</code>
@@ -1008,7 +1015,7 @@
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Region.html#startRegionOperation--"><code>Region.startRegionOperation()</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postStoreFileReaderOpen-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.io.FSDataInputStreamWrapper-long-org.apache.hadoop.hbase.io.hfile.CacheConfig-org.apache.hadoop.hbase.io.Reference-org.apache.hadoop.hbase.regionserver.StoreFileReader-">postStoreFileReaderOpen</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                        org.apache.hadoop.fs.FileSystem&nbsp;fs,
@@ -1023,21 +1030,21 @@
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the table memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the truncateTable operation has been requested.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
             <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
@@ -1045,7 +1052,7 @@
 <div class="block">Called after the region unassignment has been requested.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
@@ -1053,7 +1060,7 @@
 <div class="block">Called after update peerConfig for the specified peer</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postWALRestore-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALKey-org.apache.hadoop.hbase.wal.WALEdit-">postWALRestore</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;? extends <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info,
@@ -1065,7 +1072,7 @@
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">WALObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/WALObserver.html#postWALRoll-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-">postWALRoll</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;? extends <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">WALCoprocessorEnvironment</a>&gt;&nbsp;ctx,
            org.apache.hadoop.fs.Path&nbsp;oldPath,
@@ -1073,7 +1080,7 @@
 <div class="block">Called after rolling the current WAL</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">WALObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/WALObserver.html#postWALWrite-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALKey-org.apache.hadoop.hbase.wal.WALEdit-">postWALWrite</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;? extends <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">WALCoprocessorEnvironment</a>&gt;&nbsp;ctx,
             <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info,
@@ -1085,14 +1092,14 @@
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  long&nbsp;procId)</code>
 <div class="block">Called before a abortProcedure request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
@@ -1100,70 +1107,70 @@
 <div class="block">Called before add a replication peer</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Called before a new region server group is added</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preAppend-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Append-">preAppend</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
          <a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)</code>
 <div class="block">Called before Append.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preAppendAfterRowLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Append-">preAppendAfterRowLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                      <a href="../../../../../../org/apache/hadoop/hbase/client/Append.html" title="class in org.apache.hadoop.hbase.client">Append</a>&nbsp;append)</code>
 <div class="block">Called before Append but after acquiring rowlock.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
          <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to assigning a specific region.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called prior to requesting rebalancing of the cluster regions, though after
  the initial checks for regions in transition and the balance switch flag.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>
 <div class="block">Called before a region server group is removed</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 boolean&nbsp;newValue)</code>
 <div class="block">Called prior to modifying the flag used to enable/disable region balancing.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preBatchMutate-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress-">preBatchMutate</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">MiniBatchOperationInProgress</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;miniBatchOp)</code>
 <div class="block">This will be called for every batch mutation operation happening at the server.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preBulkLoadHFile-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preBulkLoadHFile</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;familyPaths)</code>
 <div class="block">Called before bulkLoadHFile.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preCheckAndDelete-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-byte:A-byte:A-org.apache.hadoop.hbase.CompareOperator-org.apache.hadoop.hbase.filter.ByteArrayComparable-org.apache.hadoop.hbase.client.Delete-boolean-">preCheckAndDelete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                  byte[]&nbsp;row,
@@ -1176,7 +1183,7 @@
 <div class="block">Called before checkAndDelete.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preCheckAndDeleteAfterRowLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-byte:A-byte:A-org.apache.hadoop.hbase.CompareOperator-org.apache.hadoop.hbase.filter.ByteArrayComparable-org.apache.hadoop.hbase.client.Delete-boolean-">preCheckAndDeleteAfterRowLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                              byte[]&nbsp;row,
@@ -1189,7 +1196,7 @@
 <div class="block">Called before checkAndDelete but after acquiring rowock.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preCheckAndPut-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-byte:A-byte:A-org.apache.hadoop.hbase.CompareOperator-org.apache.hadoop.hbase.filter.ByteArrayComparable-org.apache.hadoop.hbase.client.Put-boolean-">preCheckAndPut</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               byte[]&nbsp;row,
@@ -1202,7 +1209,7 @@
 <div class="block">Called before checkAndPut.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preCheckAndPutAfterRowLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-byte:A-byte:A-org.apache.hadoop.hbase.CompareOperator-org.apache.hadoop.hbase.filter.ByteArrayComparable-org.apache.hadoop.hbase.client.Put-boolean-">preCheckAndPutAfterRowLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                           byte[]&nbsp;row,
@@ -1215,25 +1222,25 @@
 <div class="block">Called before checkAndPut but after acquiring rowlock.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">BulkLoadObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/BulkLoadObserver.html#preCleanupBulkLoad-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preCleanupBulkLoad</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called as part of SecureBulkLoadEndpoint.cleanupBulkLoad() RPC call.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionServerObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerObserver.html#preClearCompactionQueues-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearCompactionQueues</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called before clearing compaction queues</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before clear dead region servers.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -1241,14 +1248,14 @@
 <div class="block">Called before a snapshot is cloned.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preClose-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preClose</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
         boolean&nbsp;abortRequested)</code>
 <div class="block">Called before the region is reported as closed to the master.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preCommitStoreFile-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preCommitStoreFile</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   byte[]&nbsp;family,
@@ -1256,7 +1263,7 @@
 <div class="block">Called before moving bulk loaded hfile to region directory.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preCompact-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.regionserver.InternalScanner-org.apache.hadoop.hbase.regionserver.ScanType-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest-">preCompact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
           <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
@@ -1268,7 +1275,7 @@
  <code>StoreFile</code>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preCompactScannerOpen-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.regionserver.ScanType-org.apache.hadoop.hbase.regionserver.ScanOptions-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest-">preCompactScannerOpen</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                      <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
@@ -1279,7 +1286,7 @@
 <div class="block">Called before we open store scanner for compaction.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preCompactSelection-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.Store-java.util.List-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-">preCompactSelection</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                    <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
@@ -1289,7 +1296,7 @@
  available candidates.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
@@ -1297,7 +1304,7 @@
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
@@ -1306,7 +1313,7 @@
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
@@ -1315,7 +1322,7 @@
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
@@ -1323,7 +1330,7 @@
 <div class="block">Called before decommission region servers.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preDelete-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Delete-org.apache.hadoop.hbase.wal.WALEdit-org.apache.hadoop.hbase.client.Durability-">preDelete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
          <a href="../../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete,
@@ -1332,7 +1339,7 @@
 <div class="block">Called before the client deletes a value.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
@@ -1340,14 +1347,14 @@
  namespace</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>
 <div class="block">Called before a snapshot is deleted.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -1355,7 +1362,7 @@
  table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -1363,49 +1370,49 @@
  table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before disable a replication peer</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before enable a replication peer</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to enabling a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to enabling a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default com.google.protobuf.Message</code></td>
 <td class="colLast"><span class="typeNameLabel">EndpointObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/EndpointObserver.html#preEndpointInvocation-org.apache.hadoop.hbase.coprocessor.ObserverContext-com.google.protobuf.Service-java.lang.String-com.google.protobuf.Message-">preEndpointInvocation</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      com.google.protobuf.Service&nbsp;service,
@@ -1414,7 +1421,7 @@
 <div class="block">Called before an Endpoint service method is invoked.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preExists-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Get-boolean-">preExists</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
          <a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
@@ -1422,14 +1429,14 @@
 <div class="block">Called before the client tests for existence using a Get.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">preFlush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a>&nbsp;tracker)</code>
 <div class="block">Called before the memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.regionserver.InternalScanner-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">preFlush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
@@ -1438,7 +1445,7 @@
 <div class="block">Called before a Store's memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preFlushScannerOpen-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.regionserver.ScanOptions-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">preFlushScannerOpen</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                    <a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
@@ -1447,26 +1454,26 @@
 <div class="block">Called before we open store scanner for flush.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before get cluster status.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before a getLocks request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
 <div class="block">Called before a getNamespaceDescriptor request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preGetOp-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Get-java.util.List-">preGetOp</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
         <a href="../../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
@@ -1474,20 +1481,20 @@
 <div class="block">Called before the client performs a Get</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before a getProcedures request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before get the configured ReplicationPeerConfig for the specified peer</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
@@ -1496,7 +1503,7 @@
 <div class="block">Called before a getTableDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><span class="typeNameLabel">MasterObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;descriptors,
@@ -1504,48 +1511,48 @@
 <div class="block">Called before a getTableNames request has been processed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionObserver.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preIncrement-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Increment-">preIncrement</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
             <a href="../../../../../../org/apache/hadoop/hbase/client/Increment.html" title="class in org.apache.hadoop.hbase.client">Increment</a>&nbsp;increment)</code>
 <div class="block">Called before Increment.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></code></td>
 <td class="colLast"><span c

<TRUNCATED>

[46/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/MasterObserver.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
index 7a08866..2aa7ec7 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/MasterObserver.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":18,"i1":18,"i2":18,"i3":18,"i4":18,"i5":18,"i6":18,"i7":18,"i8":18,"i9":18,"i10":18,"i11":18,"i12":18,"i13":18,"i14":18,"i15":18,"i16":18,"i17":18,"i18":18,"i19":18,"i20":18,"i21":18,"i22":18,"i23":18,"i24":18,"i25":18,"i26":18,"i27":18,"i28":18,"i29":18,"i30":18,"i31":18,"i32":18,"i33":18,"i34":18,"i35":18,"i36":18,"i37":18,"i38":18,"i39":18,"i40":18,"i41":18,"i42":18,"i43":18,"i44":18,"i45":18,"i46":18,"i47":18,"i48":18,"i49":18,"i50":18,"i51":18,"i52":18,"i53":18,"i54":18,"i55":18,"i56":18,"i57":18,"i58":18,"i59":18,"i60":18,"i61":18,"i62":18,"i63":18,"i64":18,"i65":18,"i66":18,"i67":18,"i68":18,"i69":18,"i70":18,"i71":18,"i72":18,"i73":18,"i74":18,"i75":18,"i76":18,"i77":18,"i78":18,"i79":18,"i80":18,"i81":18,"i82":18,"i83":18,"i84":18,"i85":18,"i86":18,"i87":18,"i88":18,"i89":18,"i90":18,"i91":18,"i92":18,"i93":18,"i94":18,"i95":18,"i96":18,"i97":18,"i98":18,"i99":18,"i100":18,"i101":18,"i102":18,"i103":18,"i104":18,"i105":18,"i106":18,"i107":18,"i108":18,"i
 109":18,"i110":18,"i111":18,"i112":18,"i113":18,"i114":18,"i115":18,"i116":18,"i117":18,"i118":18,"i119":18,"i120":18,"i121":18,"i122":18,"i123":18,"i124":18,"i125":18,"i126":18,"i127":18,"i128":18,"i129":18,"i130":18,"i131":18,"i132":18,"i133":18,"i134":18,"i135":18,"i136":18};
+var methods = {"i0":18,"i1":18,"i2":18,"i3":18,"i4":18,"i5":18,"i6":18,"i7":18,"i8":18,"i9":18,"i10":18,"i11":18,"i12":18,"i13":18,"i14":18,"i15":18,"i16":18,"i17":18,"i18":18,"i19":18,"i20":18,"i21":18,"i22":18,"i23":18,"i24":18,"i25":18,"i26":18,"i27":18,"i28":18,"i29":18,"i30":18,"i31":18,"i32":18,"i33":18,"i34":18,"i35":18,"i36":18,"i37":18,"i38":18,"i39":18,"i40":18,"i41":18,"i42":18,"i43":18,"i44":18,"i45":18,"i46":18,"i47":18,"i48":18,"i49":18,"i50":18,"i51":18,"i52":18,"i53":18,"i54":18,"i55":18,"i56":18,"i57":18,"i58":18,"i59":18,"i60":18,"i61":18,"i62":18,"i63":18,"i64":18,"i65":18,"i66":18,"i67":18,"i68":18,"i69":18,"i70":18,"i71":18,"i72":18,"i73":18,"i74":18,"i75":18,"i76":18,"i77":18,"i78":18,"i79":18,"i80":18,"i81":18,"i82":18,"i83":18,"i84":18,"i85":18,"i86":18,"i87":18,"i88":18,"i89":18,"i90":18,"i91":18,"i92":18,"i93":18,"i94":18,"i95":18,"i96":18,"i97":18,"i98":18,"i99":18,"i100":18,"i101":18,"i102":18,"i103":18,"i104":18,"i105":18,"i106":18,"i107":18,"i108":18,"i
 109":18,"i110":18,"i111":18,"i112":18,"i113":18,"i114":18,"i115":18,"i116":18,"i117":18,"i118":18,"i119":18,"i120":18,"i121":18,"i122":18,"i123":18,"i124":18,"i125":18,"i126":18,"i127":18,"i128":18,"i129":18,"i130":18,"i131":18,"i132":18,"i133":18,"i134":18,"i135":18,"i136":18,"i137":18,"i138":18};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],16:["t5","Default Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -529,6 +529,13 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 </tr>
 <tr id="i51" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Called after servers are removed from rsgroup</div>
+</td>
+</tr>
+<tr id="i52" class="altColor">
+<td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -537,7 +544,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after new LockProcedure is queued.</div>
 </td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i53" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                    <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -545,20 +552,20 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after a snapshot restore operation has been requested.</div>
 </td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i54" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge)</code>
 <div class="block">This will be called after the roll back of the regions merge.</div>
 </td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called after the roll back of the split region is completed</div>
 </td>
 </tr>
-<tr id="i55" class="rowColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -566,7 +573,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr id="i56" class="altColor">
+<tr id="i57" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                           boolean&nbsp;newValue,
@@ -574,7 +581,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after setting split / merge switch</div>
 </td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i58" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -582,7 +589,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after the quota for the table is stored.</div>
 </td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i59" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -590,7 +597,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after the quota for the user is stored.</div>
 </td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i60" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -599,7 +606,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -608,7 +615,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
             <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -616,28 +623,28 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after the snapshot operation has been requested.</div>
 </td>
 </tr>
-<tr id="i62" class="altColor">
+<tr id="i63" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postStartMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postStartMaster</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called immediately after an active master instance has completed
  initialization.</div>
 </td>
 </tr>
-<tr id="i63" class="rowColor">
+<tr id="i64" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the table memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr id="i64" class="altColor">
+<tr id="i65" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called after the truncateTable operation has been requested.</div>
 </td>
 </tr>
-<tr id="i65" class="rowColor">
+<tr id="i66" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
             <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
@@ -645,7 +652,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after the region unassignment has been requested.</div>
 </td>
 </tr>
-<tr id="i66" class="altColor">
+<tr id="i67" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
@@ -653,14 +660,14 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called after update peerConfig for the specified peer</div>
 </td>
 </tr>
-<tr id="i67" class="rowColor">
+<tr id="i68" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  long&nbsp;procId)</code>
 <div class="block">Called before a abortProcedure request has been processed.</div>
 </td>
 </tr>
-<tr id="i68" class="altColor">
+<tr id="i69" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
@@ -668,48 +675,48 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before add a replication peer</div>
 </td>
 </tr>
-<tr id="i69" class="rowColor">
+<tr id="i70" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Called before a new region server group is added</div>
 </td>
 </tr>
-<tr id="i70" class="altColor">
+<tr id="i71" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
          <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to assigning a specific region.</div>
 </td>
 </tr>
-<tr id="i71" class="rowColor">
+<tr id="i72" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called prior to requesting rebalancing of the cluster regions, though after
  the initial checks for regions in transition and the balance switch flag.</div>
 </td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i73" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>
 <div class="block">Called before a region server group is removed</div>
 </td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i74" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 boolean&nbsp;newValue)</code>
 <div class="block">Called prior to modifying the flag used to enable/disable region balancing.</div>
 </td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i75" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before clear dead region servers.</div>
 </td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i76" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -717,7 +724,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before a snapshot is cloned.</div>
 </td>
 </tr>
-<tr id="i76" class="altColor">
+<tr id="i77" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
@@ -725,7 +732,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr id="i77" class="rowColor">
+<tr id="i78" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
@@ -734,7 +741,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr id="i78" class="altColor">
+<tr id="i79" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
@@ -743,7 +750,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a>.</div>
 </td>
 </tr>
-<tr id="i79" class="rowColor">
+<tr id="i80" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
@@ -751,7 +758,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before decommission region servers.</div>
 </td>
 </tr>
-<tr id="i80" class="altColor">
+<tr id="i81" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
@@ -759,14 +766,14 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
  namespace</div>
 </td>
 </tr>
-<tr id="i81" class="rowColor">
+<tr id="i82" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                  <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>
 <div class="block">Called before a snapshot is deleted.</div>
 </td>
 </tr>
-<tr id="i82" class="altColor">
+<tr id="i83" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -774,7 +781,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
  table.</div>
 </td>
 </tr>
-<tr id="i83" class="rowColor">
+<tr id="i84" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -782,81 +789,81 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
  table.</div>
 </td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i85" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before disable a replication peer</div>
 </td>
 </tr>
-<tr id="i85" class="rowColor">
+<tr id="i86" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
-<tr id="i86" class="altColor">
+<tr id="i87" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to disabling a table.</div>
 </td>
 </tr>
-<tr id="i87" class="rowColor">
+<tr id="i88" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before enable a replication peer</div>
 </td>
 </tr>
-<tr id="i88" class="altColor">
+<tr id="i89" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to enabling a table.</div>
 </td>
 </tr>
-<tr id="i89" class="rowColor">
+<tr id="i90" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called prior to enabling a table.</div>
 </td>
 </tr>
-<tr id="i90" class="altColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before get cluster status.</div>
 </td>
 </tr>
-<tr id="i91" class="rowColor">
+<tr id="i92" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before a getLocks request has been processed.</div>
 </td>
 </tr>
-<tr id="i92" class="altColor">
+<tr id="i93" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</code>
 <div class="block">Called before a getNamespaceDescriptor request has been processed.</div>
 </td>
 </tr>
-<tr id="i93" class="rowColor">
+<tr id="i94" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before a getProcedures request has been processed.</div>
 </td>
 </tr>
-<tr id="i94" class="altColor">
+<tr id="i95" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before get the configured ReplicationPeerConfig for the specified peer</div>
 </td>
 </tr>
-<tr id="i95" class="rowColor">
+<tr id="i96" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
@@ -865,7 +872,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before a getTableDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr id="i96" class="altColor">
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;descriptors,
@@ -873,34 +880,34 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before a getTableNames request has been processed.</div>
 </td>
 </tr>
-<tr id="i97" class="rowColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before list decommissioned region servers.</div>
 </td>
 </tr>
-<tr id="i98" class="altColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>
 <div class="block">Called before a listNamespaceDescriptors request has been processed.</div>
 </td>
 </tr>
-<tr id="i99" class="rowColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Called before list replication peers.</div>
 </td>
 </tr>
-<tr id="i100" class="altColor">
+<tr id="i101" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>
 <div class="block">Called before listSnapshots request has been processed.</div>
 </td>
 </tr>
-<tr id="i101" class="rowColor">
+<tr id="i102" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
@@ -908,27 +915,27 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before heartbeat to a lock.</div>
 </td>
 </tr>
-<tr id="i102" class="altColor">
+<tr id="i103" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Call before the master initialization is set to true.</div>
 </td>
 </tr>
-<tr id="i103" class="rowColor">
+<tr id="i104" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge)</code>
 <div class="block">Called before merge regions request.</div>
 </td>
 </tr>
-<tr id="i104" class="altColor">
+<tr id="i105" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                      <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge)</code>
 <div class="block">Called before the regions merge.</div>
 </td>
 </tr>
-<tr id="i105" class="rowColor">
+<tr id="i106" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
@@ -936,14 +943,14 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">This will be called before update META step as part of regions merge transaction.</div>
 </td>
 </tr>
-<tr id="i106" class="altColor">
+<tr id="i107" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>
 <div class="block">Called prior to modifying a namespace's properties.</div>
 </td>
 </tr>
-<tr id="i107" class="rowColor">
+<tr id="i108" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -951,7 +958,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called prior to modifying a table's properties.</div>
 </td>
 </tr>
-<tr id="i108" class="altColor">
+<tr id="i109" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -959,7 +966,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called prior to modifying a table's properties.</div>
 </td>
 </tr>
-<tr id="i109" class="rowColor">
+<tr id="i110" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
        <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
@@ -968,7 +975,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called prior to moving a given region from one region server to another.</div>
 </td>
 </tr>
-<tr id="i110" class="altColor">
+<tr id="i111" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
@@ -976,7 +983,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before servers are moved to target region server group</div>
 </td>
 </tr>
-<tr id="i111" class="rowColor">
+<tr id="i112" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
@@ -985,7 +992,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before servers are moved to target region server group</div>
 </td>
 </tr>
-<tr id="i112" class="altColor">
+<tr id="i113" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
@@ -993,7 +1000,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before tables are moved to target region server group</div>
 </td>
 </tr>
-<tr id="i113" class="rowColor">
+<tr id="i114" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                            <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
@@ -1001,28 +1008,35 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before recommission region server.</div>
 </td>
 </tr>
-<tr id="i114" class="altColor">
+<tr id="i115" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Called prior to marking a given region as offline.</div>
 </td>
 </tr>
-<tr id="i115" class="rowColor">
+<tr id="i116" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Called before remove a replication peer</div>
 </td>
 </tr>
-<tr id="i116" class="altColor">
+<tr id="i117" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Called before a region server group is removed</div>
 </td>
 </tr>
-<tr id="i117" class="rowColor">
+<tr id="i118" class="altColor">
+<td class="colFirst"><code>default void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Called before servers are removed from rsgroup</div>
+</td>
+</tr>
+<tr id="i119" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -1032,7 +1046,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before new LockProcedure is queued.</div>
 </td>
 </tr>
-<tr id="i118" class="altColor">
+<tr id="i120" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -1040,7 +1054,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before a snapshot is restored.</div>
 </td>
 </tr>
-<tr id="i119" class="rowColor">
+<tr id="i121" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -1048,7 +1062,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr id="i120" class="altColor">
+<tr id="i122" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          boolean&nbsp;newValue,
@@ -1057,7 +1071,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
  Supports Coprocessor 'bypass'.</div>
 </td>
 </tr>
-<tr id="i121" class="rowColor">
+<tr id="i123" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1065,7 +1079,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before the quota for the table is stored.</div>
 </td>
 </tr>
-<tr id="i122" class="altColor">
+<tr id="i124" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1073,7 +1087,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before the quota for the user is stored.</div>
 </td>
 </tr>
-<tr id="i123" class="rowColor">
+<tr id="i125" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1082,7 +1096,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr id="i124" class="altColor">
+<tr id="i126" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1091,14 +1105,14 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr id="i125" class="rowColor">
+<tr id="i127" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called prior to shutting down the full HBase cluster, including this
  <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a> process.</div>
 </td>
 </tr>
-<tr id="i126" class="altColor">
+<tr id="i128" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
            <a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -1106,7 +1120,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before a new snapshot is taken.</div>
 </td>
 </tr>
-<tr id="i127" class="rowColor">
+<tr id="i129" class="rowColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1114,7 +1128,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before the split region procedure is called.</div>
 </td>
 </tr>
-<tr id="i128" class="altColor">
+<tr id="i130" class="altColor">
 <td class="colFirst"><code>default void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1122,13 +1136,13 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/coproc
 <div class="block">Called before the region is split.</div>
 </td>
 </tr>
-<tr id="i129" class="rowColor">
+<tr id="i131" class="rowColor">
 <td c

<TRUNCATED>

[10/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html
index 3b3f37b..bc6c9d2 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.72">TestReplicaWithCluster</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.71">TestReplicaWithCluster</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -298,7 +298,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.73">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.72">LOG</a></pre>
 </li>
 </ul>
 <a name="NB_SERVERS">
@@ -307,7 +307,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>NB_SERVERS</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.75">NB_SERVERS</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.74">NB_SERVERS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.TestReplicaWithCluster.NB_SERVERS">Constant Field Values</a></dd>
@@ -320,7 +320,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>row</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.76">row</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.75">row</a></pre>
 </li>
 </ul>
 <a name="HTU">
@@ -329,7 +329,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>HTU</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.77">HTU</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.76">HTU</a></pre>
 </li>
 </ul>
 <a name="HTU2">
@@ -338,7 +338,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>HTU2</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.80">HTU2</a></pre>
+<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.79">HTU2</a></pre>
 </li>
 </ul>
 <a name="f">
@@ -347,7 +347,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>f</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.81">f</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.80">f</a></pre>
 </li>
 </ul>
 <a name="REFRESH_PERIOD">
@@ -356,7 +356,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>REFRESH_PERIOD</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.83">REFRESH_PERIOD</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.82">REFRESH_PERIOD</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.TestReplicaWithCluster.REFRESH_PERIOD">Constant Field Values</a></dd>
@@ -369,7 +369,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>META_SCAN_TIMEOUT_IN_MILLISEC</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.84">META_SCAN_TIMEOUT_IN_MILLISEC</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.83">META_SCAN_TIMEOUT_IN_MILLISEC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.client.TestReplicaWithCluster.META_SCAN_TIMEOUT_IN_MILLISEC">Constant Field Values</a></dd>
@@ -390,7 +390,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestReplicaWithCluster</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.72">TestReplicaWithCluster</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.71">TestReplicaWithCluster</a>()</pre>
 </li>
 </ul>
 </li>
@@ -407,7 +407,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>beforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.240">beforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.237">beforeClass</a>()
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -421,7 +421,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>afterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.278">afterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.275">afterClass</a>()
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -435,7 +435,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testCreateDeleteTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.285">testCreateDeleteTable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.282">testCreateDeleteTable</a>()
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -449,7 +449,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testChangeTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.318">testChangeTable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.315">testChangeTable</a>()
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -463,7 +463,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaAndReplication</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.378">testReplicaAndReplication</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.375">testReplicaAndReplication</a>()
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -477,7 +477,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testBulkLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.462">testBulkLoad</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.459">testBulkLoad</a>()
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -491,7 +491,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaGetWithPrimaryDown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.542">testReplicaGetWithPrimaryDown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.539">testReplicaGetWithPrimaryDown</a>()
                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -505,7 +505,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaScanWithPrimaryDown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.576">testReplicaScanWithPrimaryDown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.573">testReplicaScanWithPrimaryDown</a>()
                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -519,7 +519,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testReplicaGetWithRpcClientImpl</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.620">testReplicaGetWithRpcClientImpl</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.617">testReplicaGetWithRpcClientImpl</a>()
                                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -533,7 +533,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testGetRegionLocationFromPrimaryMetaRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.673">testGetRegionLocationFromPrimaryMetaRegion</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.670">testGetRegionLocationFromPrimaryMetaRegion</a>()
                                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -549,7 +549,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testReplicaGetWithPrimaryAndMetaDown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.706">testReplicaGetWithPrimaryAndMetaDown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#line.703">testReplicaGetWithPrimaryAndMetaDown</a>()
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestClassLoading.TestMasterCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestClassLoading.TestMasterCoprocessor.html b/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestClassLoading.TestMasterCoprocessor.html
index 7539063..3d279e7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestClassLoading.TestMasterCoprocessor.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestClassLoading.TestMasterCoprocessor.html
@@ -209,7 +209,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus
 , preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, 
 preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig
 </code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestCoprocessorMetrics.CustomMasterObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestCoprocessorMetrics.CustomMasterObserver.html b/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestCoprocessorMetrics.CustomMasterObserver.html
index f29c311..73a4893 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestCoprocessorMetrics.CustomMasterObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestCoprocessorMetrics.CustomMasterObserver.html
@@ -241,7 +241,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModify
 Table, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDes
 criptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModify
 Table, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks,
  preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithAbort.BuggyMasterObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithAbort.BuggyMasterObserver.html b/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithAbort.BuggyMasterObserver.html
index 0922821..d5d7cce 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithAbort.BuggyMasterObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithAbort.BuggyMasterObserver.html
@@ -258,7 +258,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModify
 Table, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDesc
 riptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModify
 Table, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, 
 preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithRemove.BuggyMasterObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithRemove.BuggyMasterObserver.html b/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithRemove.BuggyMasterObserver.html
index ba70e53..4657967 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithRemove.BuggyMasterObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithRemove.BuggyMasterObserver.html
@@ -258,7 +258,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModify
 Table, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDesc
 riptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModify
 Table, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, 
 preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.CPMasterObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.CPMasterObserver.html b/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.CPMasterObserver.html
index 639b69b..102ac06 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.CPMasterObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.CPMasterObserver.html
@@ -1468,7 +1468,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAddReplicationPeer, postClearDeadServers, postDecommissionRegionServers, postDisableReplicationPeer, postEnableReplicationPeer, postGetClusterStatus, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postRecommissionRegionServer, postRemoveReplicationPeer, postUpdateReplicationPeerConfig, preAddReplicationPeer, preClearDeadServers, preDecommissionRegionServers, preDisableReplicationPeer, preEnableReplicationPeer, preGetClusterStatus, preGetReplicationPeerConfig, preListDecommissionedRegionServers, preListReplicationPeers, preRecommissionRegionServer, preRemoveReplicationPeer, preSetSplitOrMergeEnabled, preUpdateReplicationPeerConfig</code></li>
+<code>postAddReplicationPeer, postClearDeadServers, postDecommissionRegionServers, postDisableReplicationPeer, postEnableReplicationPeer, postGetClusterStatus, postGetReplicationPeerConfig, postListDecommissionedRegionServers, postListReplicationPeers, postRecommissionRegionServer, postRemoveReplicationPeer, postRemoveServers, postUpdateReplicationPeerConfig, preAddReplicationPeer, preClearDeadServers, preDecommissionRegionServers, preDisableReplicationPeer, preEnableReplicationPeer, preGetClusterStatus, preGetReplicationPeerConfig, preListDecommissionedRegionServers, preListReplicationPeers, preRecommissionRegionServer, preRemoveReplicationPeer, preRemoveServers, preSetSplitOrMergeEnabled, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index b89116f..e6bc9ca 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -158,8 +158,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterCoprocessorServices.MockAccessController.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterCoprocessorServices.MockAccessController.html b/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterCoprocessorServices.MockAccessController.html
index be190b8..70889a5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterCoprocessorServices.MockAccessController.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterCoprocessorServices.MockAccessController.html
@@ -252,7 +252,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.Access
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus
 , preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, 
 preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig
 </code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterCoprocessorServices.MockVisibilityController.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterCoprocessorServices.MockVisibilityController.html b/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterCoprocessorServices.MockVisibilityController.html
index e1e2d57..e97db28 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterCoprocessorServices.MockVisibilityController.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/TestMasterCoprocessorServices.MockVisibilityController.html
@@ -258,7 +258,7 @@ implements org.apache.hadoop.hbase.protobuf.generated.VisibilityLabelsProtos.Vis
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus
 , preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, 
 preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig
 </code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.CPMasterObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.CPMasterObserver.html b/testdevapidocs/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.CPMasterObserver.html
index 57ad86f..4d5d32e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.CPMasterObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.CPMasterObserver.html
@@ -229,7 +229,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus
 , preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDeleteTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyName
 space, postModifyTable, postMove, postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preCreateTableAction, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTable, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, 
 preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.MasterSyncObserver.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.MasterSyncObserver.html b/testdevapidocs/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.MasterSyncObserver.html
index 45ecd2f..8eaf021 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.MasterSyncObserver.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.MasterSyncObserver.html
@@ -240,7 +240,7 @@ implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.had
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.MasterObserver</h3>
-<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTable, postMove
 , postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetProcedures, preGetRepl
 icationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
+<code>postAbortProcedure, postAddReplicationPeer, postAddRSGroup, postAssign, postBalance, postBalanceRSGroup, postBalanceSwitch, postClearDeadServers, postCloneSnapshot, postCompletedCreateTableAction, postCompletedDisableTableAction, postCompletedEnableTableAction, postCompletedMergeRegionsAction, postCompletedModifyTableAction, postCompletedSplitRegionAction, postCompletedTruncateTableAction, postCreateNamespace, postCreateTable, postDecommissionRegionServers, postDeleteNamespace, postDeleteSnapshot, postDeleteTable, postDisableReplicationPeer, postDisableTable, postEnableReplicationPeer, postEnableTable, postGetClusterStatus, postGetLocks, postGetNamespaceDescriptor, postGetProcedures, postGetReplicationPeerConfig, postGetTableDescriptors, postGetTableNames, postListDecommissionedRegionServers, postListNamespaceDescriptors, postListReplicationPeers, postListSnapshot, postLockHeartbeat, postMergeRegions, postMergeRegionsCommitAction, postModifyNamespace, postModifyTable, postMove
 , postMoveServers, postMoveServersAndTables, postMoveTables, postRecommissionRegionServer, postRegionOffline, postRemoveReplicationPeer, postRemoveRSGroup, postRemoveServers, postRequestLock, postRestoreSnapshot, postRollBackMergeRegionsAction, postRollBackSplitRegionAction, postSetNamespaceQuota, postSetSplitOrMergeEnabled, postSetTableQuota, postSetUserQuota, postSetUserQuota, postSetUserQuota, postSnapshot, postStartMaster, postTableFlush, postTruncateTable, postUnassign, postUpdateReplicationPeerConfig, preAbortProcedure, preAddReplicationPeer, preAddRSGroup, preAssign, preBalance, preBalanceRSGroup, preBalanceSwitch, preClearDeadServers, preCloneSnapshot, preCreateNamespace, preCreateTable, preDecommissionRegionServers, preDeleteNamespace, preDeleteSnapshot, preDeleteTableAction, preDisableReplicationPeer, preDisableTable, preDisableTableAction, preEnableReplicationPeer, preEnableTable, preEnableTableAction, preGetClusterStatus, preGetLocks, preGetNamespaceDescriptor, preGetPro
 cedures, preGetReplicationPeerConfig, preGetTableDescriptors, preGetTableNames, preListDecommissionedRegionServers, preListNamespaceDescriptors, preListReplicationPeers, preListSnapshot, preLockHeartbeat, preMasterInitialization, preMergeRegions, preMergeRegionsAction, preMergeRegionsCommitAction, preModifyNamespace, preModifyTable, preModifyTableAction, preMove, preMoveServers, preMoveServersAndTables, preMoveTables, preRecommissionRegionServer, preRegionOffline, preRemoveReplicationPeer, preRemoveRSGroup, preRemoveServers, preRequestLock, preRestoreSnapshot, preSetNamespaceQuota, preSetSplitOrMergeEnabled, preSetTableQuota, preSetUserQuota, preSetUserQuota, preSetUserQuota, preShutdown, preSnapshot, preSplitRegion, preSplitRegionAction, preSplitRegionAfterMETAAction, preSplitRegionBeforeMETAAction, preStopMaster, preTableFlush, preTruncateTable, preTruncateTableAction, preUnassign, preUpdateReplicationPeerConfig</code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index 975bf4c..9938ca6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -575,14 +575,14 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
index 46c9672..dec1fae 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
@@ -81,14 +81,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;V&gt;, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
+<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
+<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;V&gt;, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.procedure.ProcedureManager

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 451a7e3..64e86d4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -205,8 +205,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
 </ul>
 </li>


[42/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html b/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
index 327c2f7..cc0371f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i
 109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i
 109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -489,259 +489,263 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 </tr>
 <tr id="i53" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRemoveServers-java.util.Set-">postRemoveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
+<tr id="i54" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRequestLock-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.procedure2.LockType-java.lang.String-">postRequestLock</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionInfos,
                <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockType</a>&nbsp;type,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;description)</code>&nbsp;</td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRestoreSnapshot-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
                    <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr id="i55" class="rowColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.security.User-">postRollBackMergeRegionsAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
                               <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>
 <div class="block">Invoked after rollback merge regions operation</div>
 </td>
 </tr>
-<tr id="i56" class="altColor">
+<tr id="i57" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.security.User-">postRollBackSplitRegionAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>
 <div class="block">Invoked just after the rollback of a failed split</div>
 </td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i58" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetNamespaceQuota-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                      <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i59" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetSplitOrMergeEnabled-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">postSetSplitOrMergeEnabled</a></span>(boolean&nbsp;newValue,
                           <a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;switchType)</code>&nbsp;</td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i60" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetTableQuota-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                  <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetUserQuota-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                 <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetUserQuota-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                 <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr id="i62" class="altColor">
+<tr id="i63" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSetUserQuota-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                 <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr id="i63" class="rowColor">
+<tr id="i64" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postSnapshot-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
             <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr id="i64" class="altColor">
+<tr id="i65" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postStartMaster--">postStartMaster</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i65" class="rowColor">
+<tr id="i66" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postTableFlush-org.apache.hadoop.hbase.TableName-">postTableFlush</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i66" class="altColor">
+<tr id="i67" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postTruncateTable-org.apache.hadoop.hbase.TableName-">postTruncateTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i67" class="rowColor">
+<tr id="i68" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postUnassign-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
             boolean&nbsp;force)</code>&nbsp;</td>
 </tr>
-<tr id="i68" class="altColor">
+<tr id="i69" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postUpdateReplicationPeerConfig-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                                <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)</code>&nbsp;</td>
 </tr>
-<tr id="i69" class="rowColor">
+<tr id="i70" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preAbortProcedure-org.apache.hadoop.hbase.procedure2.ProcedureExecutor-long-">preAbortProcedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;procEnv,
                  long&nbsp;procId)</code>&nbsp;</td>
 </tr>
-<tr id="i70" class="altColor">
+<tr id="i71" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preAddReplicationPeer-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                      <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)</code>&nbsp;</td>
 </tr>
-<tr id="i71" class="rowColor">
+<tr id="i72" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preAddRSGroup-java.lang.String-">preAddRSGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i73" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preAssign-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i74" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preBalance--">preBalance</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i75" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preBalanceRSGroup-java.lang.String-">preBalanceRSGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i76" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preBalanceSwitch-boolean-">preBalanceSwitch</a></span>(boolean&nbsp;b)</code>&nbsp;</td>
 </tr>
-<tr id="i76" class="altColor">
+<tr id="i77" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preClearDeadServers--">preClearDeadServers</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i77" class="rowColor">
+<tr id="i78" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preCloneSnapshot-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
                 <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr id="i78" class="altColor">
+<tr id="i79" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preCreateNamespace-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr id="i79" class="rowColor">
+<tr id="i80" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preCreateTable-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd,
               <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regions)</code>&nbsp;</td>
 </tr>
-<tr id="i80" class="altColor">
+<tr id="i81" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preCreateTableAction-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.security.User-">preCreateTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd,
                     <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regions,
                     <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>&nbsp;</td>
 </tr>
-<tr id="i81" class="rowColor">
+<tr id="i82" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDecommissionRegionServers-java.util.List-boolean-">preDecommissionRegionServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
                             boolean&nbsp;offload)</code>&nbsp;</td>
 </tr>
-<tr id="i82" class="altColor">
+<tr id="i83" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDeleteNamespace-java.lang.String-">preDeleteNamespace</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceName)</code>&nbsp;</td>
 </tr>
-<tr id="i83" class="rowColor">
+<tr id="i84" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDeleteSnapshot-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>&nbsp;</td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i85" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDeleteTable-org.apache.hadoop.hbase.TableName-">preDeleteTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i85" class="rowColor">
+<tr id="i86" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDeleteTableAction-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.security.User-">preDeleteTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                     <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>&nbsp;</td>
 </tr>
-<tr id="i86" class="altColor">
+<tr id="i87" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDisableReplicationPeer-java.lang.String-">preDisableReplicationPeer</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>&nbsp;</td>
 </tr>
-<tr id="i87" class="rowColor">
+<tr id="i88" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDisableTable-org.apache.hadoop.hbase.TableName-">preDisableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i88" class="altColor">
+<tr id="i89" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preDisableTableAction-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.security.User-">preDisableTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                      <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>&nbsp;</td>
 </tr>
-<tr id="i89" class="rowColor">
+<tr id="i90" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preEnableReplicationPeer-java.lang.String-">preEnableReplicationPeer</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>&nbsp;</td>
 </tr>
-<tr id="i90" class="altColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preEnableTable-org.apache.hadoop.hbase.TableName-">preEnableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i91" class="rowColor">
+<tr id="i92" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preEnableTableAction-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.security.User-">preEnableTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                     <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>&nbsp;</td>
 </tr>
-<tr id="i92" class="altColor">
+<tr id="i93" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preGetClusterStatus--">preGetClusterStatus</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i93" class="rowColor">
+<tr id="i94" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preGetLocks--">preGetLocks</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i94" class="altColor">
+<tr id="i95" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preGetNamespaceDescriptor-java.lang.String-">preGetNamespaceDescriptor</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceName)</code>&nbsp;</td>
 </tr>
-<tr id="i95" class="rowColor">
+<tr id="i96" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preGetProcedures--">preGetProcedures</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i96" class="altColor">
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preGetReplicationPeerConfig-java.lang.String-">preGetReplicationPeerConfig</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>&nbsp;</td>
 </tr>
-<tr id="i97" class="rowColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preGetTableDescriptors-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tableNamesList,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;descriptors,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr id="i98" class="altColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preGetTableNames-java.util.List-java.lang.String-">preGetTableNames</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;descriptors,
                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr id="i99" class="rowColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preListDecommissionedRegionServers--">preListDecommissionedRegionServers</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i100" class="altColor">
+<tr id="i101" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preListNamespaceDescriptors-java.util.List-">preListNamespaceDescriptors</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;descriptors)</code>&nbsp;</td>
 </tr>
-<tr id="i101" class="rowColor">
+<tr id="i102" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preListReplicationPeers-java.lang.String-">preListReplicationPeers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>&nbsp;</td>
 </tr>
-<tr id="i102" class="altColor">
+<tr id="i103" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preListSnapshot-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>&nbsp;</td>
 </tr>
-<tr id="i103" class="rowColor">
+<tr id="i104" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preLockHeartbeat-org.apache.hadoop.hbase.master.locking.LockProcedure-boolean-">preLockHeartbeat</a></span>(<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockProcedure.html" title="class in org.apache.hadoop.hbase.master.locking">LockProcedure</a>&nbsp;proc,
                 boolean&nbsp;keepAlive)</code>&nbsp;</td>
 </tr>
-<tr id="i104" class="altColor">
+<tr id="i105" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMasterInitialization--">preMasterInitialization</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i105" class="rowColor">
+<tr id="i106" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMergeRegions-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge)</code>&nbsp;</td>
 </tr>
-<tr id="i106" class="altColor">
+<tr id="i107" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMergeRegionsAction-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.security.User-">preMergeRegionsAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
                      <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>
 <div class="block">Invoked just before a merge</div>
 </td>
 </tr>
-<tr id="i107" class="rowColor">
+<tr id="i108" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMergeRegionsCommit-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-org.apache.hadoop.hbase.security.User-">preMergeRegionsCommit</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;metaEntries,
@@ -749,61 +753,65 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <div class="block">Invoked before merge regions operation writes the new region to hbase:meta</div>
 </td>
 </tr>
-<tr id="i108" class="altColor">
+<tr id="i109" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preModifyNamespace-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;ns)</code>&nbsp;</td>
 </tr>
-<tr id="i109" class="rowColor">
+<tr id="i110" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preModifyTable-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
               <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)</code>&nbsp;</td>
 </tr>
-<tr id="i110" class="altColor">
+<tr id="i111" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preModifyTableAction-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.security.User-">preModifyTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                     <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd,
                     <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>&nbsp;</td>
 </tr>
-<tr id="i111" class="rowColor">
+<tr id="i112" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMove-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
        <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;srcServer,
        <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;destServer)</code>&nbsp;</td>
 </tr>
-<tr id="i112" class="altColor">
+<tr id="i113" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMoveServers-java.util.Set-java.lang.String-">preMoveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
 </tr>
-<tr id="i113" class="rowColor">
+<tr id="i114" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMoveServersAndTables-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
 </tr>
-<tr id="i114" class="altColor">
+<tr id="i115" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preMoveTables-java.util.Set-java.lang.String-">preMoveTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>&nbsp;</td>
 </tr>
-<tr id="i115" class="rowColor">
+<tr id="i116" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRecommissionRegionServer-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;byte[]&gt;&nbsp;encodedRegionNames)</code>&nbsp;</td>
 </tr>
-<tr id="i116" class="altColor">
+<tr id="i117" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRegionOffline-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</code>&nbsp;</td>
 </tr>
-<tr id="i117" class="rowColor">
+<tr id="i118" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRemoveReplicationPeer-java.lang.String-">preRemoveReplicationPeer</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>&nbsp;</td>
 </tr>
-<tr id="i118" class="altColor">
+<tr id="i119" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRemoveRSGroup-java.lang.String-">preRemoveRSGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
 </tr>
-<tr id="i119" class="rowColor">
+<tr id="i120" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRemoveServers-java.util.Set-">preRemoveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
+<tr id="i121" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRequestLock-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.procedure2.LockType-java.lang.String-">preRequestLock</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -811,59 +819,59 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
               <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockType</a>&nbsp;type,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;description)</code>&nbsp;</td>
 </tr>
-<tr id="i120" class="altColor">
+<tr id="i122" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRestoreSnapshot-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
                   <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr id="i121" class="rowColor">
+<tr id="i123" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSetNamespaceQuota-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                     <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr id="i122" class="altColor">
+<tr id="i124" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSetSplitOrMergeEnabled-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a></span>(boolean&nbsp;newValue,
                          <a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;switchType)</code>&nbsp;</td>
 </tr>
-<tr id="i123" class="rowColor">
+<tr id="i125" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSetTableQuota-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                 <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr id="i124" class="altColor">
+<tr id="i126" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSetUserQuota-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr id="i125" class="rowColor">
+<tr id="i127" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSetUserQuota-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr id="i126" class="altColor">
+<tr id="i128" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSetUserQuota-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;user,
                <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
                <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettings</a>&nbsp;quotas)</code>&nbsp;</td>
 </tr>
-<tr id="i127" class="rowColor">
+<tr id="i129" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preShutdown--">preShutdown</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i128" class="altColor">
+<tr id="i130" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSnapshot-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
            <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;hTableDescriptor)</code>&nbsp;</td>
 </tr>
-<tr id="i129" class="rowColor">
+<tr id="i131" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSplitAfterMETAAction-org.apache.hadoop.hbase.security.User-">preSplitAfterMETAAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>
 <div class="block">This will be called after update META step as part of split table region procedure.</div>
 </td>
 </tr>
-<tr id="i130" class="altColor">
+<tr id="i132" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSplitBeforeMETAAction-byte:A-java.util.List-org.apache.hadoop.hbase.security.User-">preSplitBeforeMETAAction</a></span>(byte[]&nbsp;splitKey,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;metaEntries,
@@ -871,14 +879,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <div class="block">This will be called before update META step as part of split table region procedure.</div>
 </td>
 </tr>
-<tr id="i131" class="rowColor">
+<tr id="i133" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSplitRegion-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
               byte[]&nbsp;splitRow)</code>
 <div class="block">Invoked just before calling the split region procedure</div>
 </td>
 </tr>
-<tr id="i132" class="altColor">
+<tr id="i134" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preSplitRegionAction-org.apache.hadoop.hbase.TableName-byte:A-org.apache.hadoop.hbase.security.User-">preSplitRegionAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                     byte[]&nbsp;splitRow,
@@ -886,29 +894,29 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <div class="block">Invoked just before a split</div>
 </td>
 </tr>
-<tr id="i133" class="rowColor">
+<tr id="i135" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preStopMaster--">preStopMaster</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i134" class="altColor">
+<tr id="i136" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preTableFlush-org.apache.hadoop.hbase.TableName-">preTableFlush</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i135" class="rowColor">
+<tr id="i137" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preTruncateTable-org.apache.hadoop.hbase.TableName-">preTruncateTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i136" class="altColor">
+<tr id="i138" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preTruncateTableAction-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.security.User-">preTruncateTableAction</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                       <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>&nbsp;</td>
 </tr>
-<tr id="i137" class="rowColor">
+<tr id="i139" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preUnassign-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
            boolean&nbsp;force)</code>&nbsp;</td>
 </tr>
-<tr id="i138" class="altColor">
+<tr id="i140" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preUpdateReplicationPeerConfig-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                               <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)</code>&nbsp;</td>
@@ -2692,13 +2700,41 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 </dl>
 </li>
 </ul>
+<a name="preRemoveServers-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preRemoveServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1404">preRemoveServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="postRemoveServers-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>postRemoveServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1416">postRemoveServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="preAddReplicationPeer-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>preAddReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1404">preAddReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1428">preAddReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                                   <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2713,7 +2749,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postAddReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1414">postAddReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1438">postAddReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                                    <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2728,7 +2764,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preRemoveReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1424">preRemoveReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1448">preRemoveReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2742,7 +2778,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postRemoveReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1433">postRemoveReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1457">postRemoveReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2756,7 +2792,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preEnableReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1442">preEnableReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1466">preEnableReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2770,7 +2806,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postEnableReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1451">postEnableReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1475">postEnableReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2784,7 +2820,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preDisableReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1460">preDisableReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1484">preDisableReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2798,7 +2834,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postDisableReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1469">postDisableReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1493">postDisableReplicationPeer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2812,7 +2848,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preGetReplicationPeerConfig</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1478">preGetReplicationPeerConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1502">preGetReplicationPeerConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2826,7 +2862,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postGetReplicationPeerConfig</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1487">postGetReplicationPeerConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1511">postGetReplicationPeerConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2840,7 +2876,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preUpdateReplicationPeerConfig</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1496">preUpdateReplicationPeerConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1520">preUpdateReplicationPeerConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                                            <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)
                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2855,7 +2891,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postUpdateReplicationPeerConfig</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1506">postUpdateReplicationPeerConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1530">postUpdateReplicationPeerConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                                             <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)
                                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2870,7 +2906,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preListReplicationPeers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1516">preListReplicationPeers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1540">preListReplicationPeers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2884,7 +2920,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postListReplicationPeers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1525">postListReplicationPeers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1549">postListReplicationPeers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2898,7 +2934,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preRequestLock</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1534">preRequestLock</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1558">preRequestLock</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                            <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                            <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionInfos,
                            <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockType</a>&nbsp;type,
@@ -2916,7 +2952,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postRequestLock</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1544">postRequestLock</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1568">postRequestLock</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                             <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                             <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionInfos,
                             <a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2">LockType</a>&nbsp;type,
@@ -2934,7 +2970,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preLockHeartbeat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1554">preLockHeartbeat</a>(<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockProcedure.html" title="class in org.apache.hadoop.hbase.master.locking">LockProcedure</a>&nbsp;proc,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1578">preLockHeartbeat</a>(<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockProcedure.html" title="class in org.apache.hadoop.hbase.master.locking">LockProcedure</a>&nbsp;proc,
                              boolean&nbsp;keepAlive)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2949,7 +2985,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postLockHeartbeat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1563">postLockHeartbeat</a>(<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockProcedure.html" title="class in org.apache.hadoop.hbase.master.locking">LockProcedure</a>&nbsp;proc,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1587">postLockHeartbeat</a>(<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockProcedure.html" title="class in org.apache.hadoop.hbase.master.locking">LockProcedure</a>&nbsp;proc,
                               boolean&nbsp;keepAlive)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2964,7 +3000,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preGetClusterStatus</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1572">preGetClusterStatus</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1596">preGetClusterStatus</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2978,7 +3014,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postGetClusterStatus</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1581">postGetClusterStatus</a>(<a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a>&nbsp;status)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1605">postGetClusterStatus</a>(<a href="../../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a>&nbsp;status)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2992,7 +3028,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preClearDeadServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1590">preClearDeadServers</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1614">preClearDeadServers</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3006,7 +3042,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postClearDeadServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1599">postClearDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1623">postClearDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;notClearedServers)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -3021,7 +3057,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>preDecommissionRegionServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1609">preDecommissionRegionServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1633">preDecommissionRegionServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
                                          boolean&nbsp;offload)
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -3036,7 +3072,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorH
 <ul class="blockList">
 <li class="blockList">
 <h4>postDecommissionRegionServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1618">postDecommissionRegionServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#line.1642">postDecommissionRegionServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a 

<TRUNCATED>

[34/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html b/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
index aa7897b..19cade2 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/AccessController.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":9,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109"
 :10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10};
+var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":9,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109"
 :10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -1157,11 +1157,18 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 </tr>
 <tr id="i113" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Called before servers are removed from rsgroup</div>
+</td>
+</tr>
+<tr id="i114" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preReplicateLogEntries-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preReplicateLogEntries</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called before executing replication request to shipping log entries.</div>
 </td>
 </tr>
-<tr id="i114" class="altColor">
+<tr id="i115" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -1171,7 +1178,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before new LockProcedure is queued.</div>
 </td>
 </tr>
-<tr id="i115" class="rowColor">
+<tr id="i116" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -1179,20 +1186,20 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before a snapshot is restored.</div>
 </td>
 </tr>
-<tr id="i116" class="altColor">
+<tr id="i117" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preRollWALWriterRequest-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preRollWALWriterRequest</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">This will be called before executing user request to roll a region server WAL.</div>
 </td>
 </tr>
-<tr id="i117" class="rowColor">
+<tr id="i118" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerClose-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.InternalScanner-">preScannerClose</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
                <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s)</code>
 <div class="block">Called before the client closes a scanner.</div>
 </td>
 </tr>
-<tr id="i118" class="altColor">
+<tr id="i119" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerNext-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.InternalScanner-java.util.List-int-boolean-">preScannerNext</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s,
@@ -1202,14 +1209,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the client asks for the next row on a scanner.</div>
 </td>
 </tr>
-<tr id="i119" class="rowColor">
+<tr id="i120" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preScannerOpen-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Scan-">preScannerOpen</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;c,
               <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)</code>
 <div class="block">Called before the client opens a new scanner.</div>
 </td>
 </tr>
-<tr id="i120" class="altColor">
+<tr id="i121" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
@@ -1217,7 +1224,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the quota for the namespace is stored.</div>
 </td>
 </tr>
-<tr id="i121" class="rowColor">
+<tr id="i122" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                          boolean&nbsp;newValue,
@@ -1226,7 +1233,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
  Supports Coprocessor 'bypass'.</div>
 </td>
 </tr>
-<tr id="i122" class="altColor">
+<tr id="i123" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1234,7 +1241,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the quota for the table is stored.</div>
 </td>
 </tr>
-<tr id="i123" class="rowColor">
+<tr id="i124" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1242,7 +1249,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the quota for the user is stored.</div>
 </td>
 </tr>
-<tr id="i124" class="altColor">
+<tr id="i125" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1251,7 +1258,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the quota for the user on the specified namespace is stored.</div>
 </td>
 </tr>
-<tr id="i125" class="rowColor">
+<tr id="i126" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;userName,
@@ -1260,14 +1267,14 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the quota for the user on the specified table is stored.</div>
 </td>
 </tr>
-<tr id="i126" class="altColor">
+<tr id="i127" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block">Called prior to shutting down the full HBase cluster, including this
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a> process.</div>
 </td>
 </tr>
-<tr id="i127" class="rowColor">
+<tr id="i128" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
            <a href="../../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot,
@@ -1275,7 +1282,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before a new snapshot is taken.</div>
 </td>
 </tr>
-<tr id="i128" class="altColor">
+<tr id="i129" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -1283,27 +1290,27 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before the split region procedure is called.</div>
 </td>
 </tr>
-<tr id="i129" class="rowColor">
+<tr id="i130" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c)</code>
 <div class="block">Called immediately prior to stopping this
  <a href="../../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master"><code>HMaster</code></a> process.</div>
 </td>
 </tr>
-<tr id="i130" class="altColor">
+<tr id="i131" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preStopRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionServerCoprocessorEnvironment</a>&gt;&nbsp;ctx)</code>
 <div class="block">Called before stopping region server.</div>
 </td>
 </tr>
-<tr id="i131" class="rowColor">
+<tr id="i132" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
              <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Called before the table memstore is flushed to disk.</div>
 </td>
 </tr>
-<tr id="i132" class="altColor">
+<tr id="i133" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
                 <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -1311,7 +1318,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
  table.</div>
 </td>
 </tr>
-<tr id="i133" class="rowColor">
+<tr id="i134" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;c,
            <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
@@ -1319,7 +1326,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called prior to unassigning a given region.</div>
 </td>
 </tr>
-<tr id="i134" class="altColor">
+<tr id="i135" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
@@ -1327,7 +1334,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Called before update peerConfig for the specified peer</div>
 </td>
 </tr>
-<tr id="i135" class="rowColor">
+<tr id="i136" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireAccess-org.apache.hadoop.hbase.security.User-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.security.access.Permission.Action...-">requireAccess</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -1336,7 +1343,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Authorizes that the current user has any of the given permissions to access the table.</div>
 </td>
 </tr>
-<tr id="i136" class="altColor">
+<tr id="i137" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireGlobalPermission-org.apache.hadoop.hbase.security.User-java.lang.String-org.apache.hadoop.hbase.security.access.Permission.Action-java.lang.String-">requireGlobalPermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -1345,7 +1352,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Checks that the user has the given global permission.</div>
 </td>
 </tr>
-<tr id="i137" class="rowColor">
+<tr id="i138" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireGlobalPermission-org.apache.hadoop.hbase.security.User-java.lang.String-org.apache.hadoop.hbase.security.access.Permission.Action-org.apache.hadoop.hbase.TableName-java.util.Map-">requireGlobalPermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -1355,7 +1362,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Checks that the user has the given global permission.</div>
 </td>
 </tr>
-<tr id="i138" class="altColor">
+<tr id="i139" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireNamespacePermission-org.apache.hadoop.hbase.security.User-java.lang.String-java.lang.String-org.apache.hadoop.hbase.security.access.Permission.Action...-">requireNamespacePermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user,
                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -1364,7 +1371,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Checks that the user has the given global or namespace permission.</div>
 </td>
 </tr>
-<tr id="i139" class="rowColor">
+<tr id="i140" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireNamespacePermission-org.apache.hadoop.hbase.security.User-java.lang.String-java.lang.String-org.apache.hadoop.hbase.TableName-java.util.Map-org.apache.hadoop.hbase.security.access.Permission.Action...-">requireNamespacePermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user,
                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -1375,7 +1382,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Checks that the user has the given global or namespace permission.</div>
 </td>
 </tr>
-<tr id="i140" class="altColor">
+<tr id="i141" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requirePermission-org.apache.hadoop.hbase.security.User-java.lang.String-org.apache.hadoop.hbase.security.access.Permission.Action-">requirePermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -1383,7 +1390,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block">Authorizes that the current user has global privileges for the given action.</div>
 </td>
 </tr>
-<tr id="i141" class="rowColor">
+<tr id="i142" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requirePermission-org.apache.hadoop.hbase.security.User-java.lang.String-org.apache.hadoop.hbase.TableName-byte:A-byte:A-org.apache.hadoop.hbase.security.access.Permission.Action...-">requirePermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -1395,13 +1402,13 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
  given table, column family and column qualifier.</div>
 </td>
 </tr>
-<tr id="i142" class="altColor">
+<tr id="i143" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireScannerOwner-org.apache.hadoop.hbase.regionserver.InternalScanner-">requireScannerOwner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>&nbsp;s)</code>
 <div class="block">Verify, when servicing an RPC, that the caller is the scanner owner.</div>
 </td>
 </tr>
-<tr id="i143" class="rowColor">
+<tr id="i144" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#requireTablePermission-org.apache.hadoop.hbase.security.User-java.lang.String-org.apache.hadoop.hbase.TableName-byte:A-byte:A-org.apache.hadoop.hbase.security.access.Permission.Action...-">requireTablePermission</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;request,
@@ -1413,7 +1420,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
  given table, column family and column qualifier.</div>
 </td>
 </tr>
-<tr id="i144" class="altColor">
+<tr id="i145" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#revoke-com.google.protobuf.RpcController-org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.RevokeRequest-com.google.protobuf.RpcCallback-">revoke</a></span>(com.google.protobuf.RpcController&nbsp;controller,
       org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos.RevokeRequest&nbsp;request,
@@ -1421,21 +1428,21 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <div class="block"><code>rpc Revoke(.hbase.pb.RevokeRequest) returns (.hbase.pb.RevokeResponse);</code></div>
 </td>
 </tr>
-<tr id="i145" class="rowColor">
+<tr id="i146" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#start-org.apache.hadoop.hbase.CoprocessorEnvironment-">start</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)</code>
 <div class="block">Called by the <a href="../../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase"><code>CoprocessorEnvironment</code></a> during it's own startup to initialize the
  coprocessor.</div>
 </td>
 </tr>
-<tr id="i146" class="altColor">
+<tr id="i147" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#stop-org.apache.hadoop.hbase.CoprocessorEnvironment-">stop</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)</code>
 <div class="block">Called by the <a href="../../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase"><code>CoprocessorEnvironment</code></a> during it's own shutdown to stop the
  coprocessor.</div>
 </td>
 </tr>
-<tr id="i147" class="rowColor">
+<tr id="i148" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.html#updateACL-org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment-java.util.Map-">updateACL</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&nbsp;e,
          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap)</code>
@@ -1456,7 +1463,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContex
 t-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">
 postCompletedModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apa
 che.hadoop.hbase.client.RegionInfo:A-">postCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coproce
 ssor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a hre
 f="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Sn
 apshotDescription-">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/
 hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.ha
 doop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-
 java.lang.String-">postRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">
 postSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName
 -org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.Replication
 PeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../.
 ./../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apach
 e.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegionAfterMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction
 </a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContex
 t-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">
 postCompletedModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apa
 che.hadoop.hbase.client.RegionInfo:A-">postCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coproce
 ssor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a hre
 f="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Sn
 apshotDescription-">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/
 hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.ha
 doop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/cop
 rocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../../org/apac
 he/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href=".
 ./../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../../org/apache/hado
 op/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMerg
 eRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegionAfterMETAAction</a>, <a href="../../../../../../o
 rg/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">
@@ -4743,13 +4750,35 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 </dl>
 </li>
 </ul>
+<a name="preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>preRemoveServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2693">preRemoveServers</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">MasterObserver</a></code></span></div>
+<div class="block">Called before servers are removed from rsgroup</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ctx</code> - the environment to interact with the framework and master</dd>
+<dd><code>servers</code> - set of decommissioned servers to remove</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>preAddReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2693">preAddReplicationPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2699">preAddReplicationPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                                   <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4773,7 +4802,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <ul class="blockList">
 <li class="blockList">
 <h4>preRemoveReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2699">preRemoveReplicationPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2705">preRemoveReplicationPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">MasterObserver</a></code></span></div>
@@ -4793,7 +4822,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <ul class="blockList">
 <li class="blockList">
 <h4>preEnableReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2705">preEnableReplicationPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2711">preEnableReplicationPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">MasterObserver</a></code></span></div>
@@ -4813,7 +4842,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <ul class="blockList">
 <li class="blockList">
 <h4>preDisableReplicationPeer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2711">preDisableReplicationPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2717">preDisableReplicationPeer</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">MasterObserver</a></code></span></div>
@@ -4833,7 +4862,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <ul class="blockList">
 <li class="blockList">
 <h4>preGetReplicationPeerConfig</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2717">preGetReplicationPeerConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2723">preGetReplicationPeerConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">MasterObserver</a></code></span></div>
@@ -4853,7 +4882,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <ul class="blockList">
 <li class="blockList">
 <h4>preUpdateReplicationPeerConfig</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2723">preUpdateReplicationPeerConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2729">preUpdateReplicationPeerConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                                            <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)
                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4874,7 +4903,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <ul class="blockList">
 <li class="blockList">
 <h4>preListReplicationPeers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2730">preListReplicationPeers</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/security/access/AccessController.html#line.2736">preListReplicationPeers</a>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterCoprocessorEnvironment</a>&gt;&nbsp;ctx,
                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/h

<TRUNCATED>

[19/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
index ec01907..d9aea0b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
@@ -591,58 +591,110 @@
 <span class="sourceLineNo">583</span>            + servers + " , Tables : " + tables + " =&gt; " +  targetGroup);<a name="line.583"></a>
 <span class="sourceLineNo">584</span>  }<a name="line.584"></a>
 <span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>  private Map&lt;String, RegionState&gt; rsGroupGetRegionsInTransition(String groupName)<a name="line.586"></a>
-<span class="sourceLineNo">587</span>      throws IOException {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>    Map&lt;String, RegionState&gt; rit = Maps.newTreeMap();<a name="line.588"></a>
-<span class="sourceLineNo">589</span>    AssignmentManager am = master.getAssignmentManager();<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    for(TableName tableName : getRSGroupInfo(groupName).getTables()) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      for(RegionInfo regionInfo: am.getRegionStates().getRegionsOfTable(tableName)) {<a name="line.591"></a>
-<span class="sourceLineNo">592</span>        RegionState state = am.getRegionStates().getRegionTransitionState(regionInfo);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>        if(state != null) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>          rit.put(regionInfo.getEncodedName(), state);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>        }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      }<a name="line.596"></a>
-<span class="sourceLineNo">597</span>    }<a name="line.597"></a>
-<span class="sourceLineNo">598</span>    return rit;<a name="line.598"></a>
-<span class="sourceLineNo">599</span>  }<a name="line.599"></a>
-<span class="sourceLineNo">600</span><a name="line.600"></a>
-<span class="sourceLineNo">601</span>  private Map&lt;TableName, Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;&gt;<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      getRSGroupAssignmentsByTable(String groupName) throws IOException {<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    Map&lt;TableName, Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;&gt; result = Maps.newHashMap();<a name="line.603"></a>
-<span class="sourceLineNo">604</span>    RSGroupInfo rsGroupInfo = getRSGroupInfo(groupName);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    Map&lt;TableName, Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;&gt; assignments = Maps.newHashMap();<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    for(Map.Entry&lt;RegionInfo, ServerName&gt; entry:<a name="line.606"></a>
-<span class="sourceLineNo">607</span>        master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      TableName currTable = entry.getKey().getTable();<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      ServerName currServer = entry.getValue();<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      RegionInfo currRegion = entry.getKey();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>      if (rsGroupInfo.getTables().contains(currTable)) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>        assignments.putIfAbsent(currTable, new HashMap&lt;&gt;());<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        assignments.get(currTable).putIfAbsent(currServer, new ArrayList&lt;&gt;());<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        assignments.get(currTable).get(currServer).add(currRegion);<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      }<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverMap = Maps.newHashMap();<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    for(ServerName serverName: master.getServerManager().getOnlineServers().keySet()) {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      if(rsGroupInfo.getServers().contains(serverName.getAddress())) {<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        serverMap.put(serverName, Collections.emptyList());<a name="line.621"></a>
-<span class="sourceLineNo">622</span>      }<a name="line.622"></a>
-<span class="sourceLineNo">623</span>    }<a name="line.623"></a>
-<span class="sourceLineNo">624</span><a name="line.624"></a>
-<span class="sourceLineNo">625</span>    // add all tables that are members of the group<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    for(TableName tableName : rsGroupInfo.getTables()) {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      if(assignments.containsKey(tableName)) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        result.put(tableName, new HashMap&lt;&gt;());<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        result.get(tableName).putAll(serverMap);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        result.get(tableName).putAll(assignments.get(tableName));<a name="line.630"></a>
-<span class="sourceLineNo">631</span>        LOG.debug("Adding assignments for " + tableName + ": " + assignments.get(tableName));<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      }<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    }<a name="line.633"></a>
-<span class="sourceLineNo">634</span><a name="line.634"></a>
-<span class="sourceLineNo">635</span>    return result;<a name="line.635"></a>
-<span class="sourceLineNo">636</span>  }<a name="line.636"></a>
-<span class="sourceLineNo">637</span>}<a name="line.637"></a>
+<span class="sourceLineNo">586</span>  @Override<a name="line.586"></a>
+<span class="sourceLineNo">587</span>  public void removeServers(Set&lt;Address&gt; servers) throws IOException {<a name="line.587"></a>
+<span class="sourceLineNo">588</span>    {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>      if (servers == null || servers.isEmpty()) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>        throw new ConstraintException("The set of servers to remove cannot be null or empty.");<a name="line.590"></a>
+<span class="sourceLineNo">591</span>      }<a name="line.591"></a>
+<span class="sourceLineNo">592</span>      // Hold a lock on the manager instance while moving servers to prevent<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      // another writer changing our state while we are working.<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      synchronized (rsGroupInfoManager) {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.595"></a>
+<span class="sourceLineNo">596</span>          master.getMasterCoprocessorHost().preRemoveServers(servers);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>        }<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        //check the set of servers<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        checkForDeadOrOnlineServers(servers);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        rsGroupInfoManager.removeServers(servers);<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        if (master.getMasterCoprocessorHost() != null) {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>          master.getMasterCoprocessorHost().postRemoveServers(servers);<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        }<a name="line.603"></a>
+<span class="sourceLineNo">604</span>        LOG.info("Remove decommissioned servers " + servers + " from rsgroup done.");<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      }<a name="line.605"></a>
+<span class="sourceLineNo">606</span>    }<a name="line.606"></a>
+<span class="sourceLineNo">607</span>  }<a name="line.607"></a>
+<span class="sourceLineNo">608</span><a name="line.608"></a>
+<span class="sourceLineNo">609</span>  private Map&lt;String, RegionState&gt; rsGroupGetRegionsInTransition(String groupName)<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      throws IOException {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    Map&lt;String, RegionState&gt; rit = Maps.newTreeMap();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    AssignmentManager am = master.getAssignmentManager();<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    for(TableName tableName : getRSGroupInfo(groupName).getTables()) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      for(RegionInfo regionInfo: am.getRegionStates().getRegionsOfTable(tableName)) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        RegionState state = am.getRegionStates().getRegionTransitionState(regionInfo);<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        if(state != null) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>          rit.put(regionInfo.getEncodedName(), state);<a name="line.617"></a>
+<span class="sourceLineNo">618</span>        }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>      }<a name="line.619"></a>
+<span class="sourceLineNo">620</span>    }<a name="line.620"></a>
+<span class="sourceLineNo">621</span>    return rit;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>  }<a name="line.622"></a>
+<span class="sourceLineNo">623</span><a name="line.623"></a>
+<span class="sourceLineNo">624</span>  private Map&lt;TableName, Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;&gt;<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      getRSGroupAssignmentsByTable(String groupName) throws IOException {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    Map&lt;TableName, Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;&gt; result = Maps.newHashMap();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    RSGroupInfo rsGroupInfo = getRSGroupInfo(groupName);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    Map&lt;TableName, Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;&gt; assignments = Maps.newHashMap();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    for(Map.Entry&lt;RegionInfo, ServerName&gt; entry:<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        master.getAssignmentManager().getRegionStates().getRegionAssignments().entrySet()) {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      TableName currTable = entry.getKey().getTable();<a name="line.631"></a>
+<span class="sourceLineNo">632</span>      ServerName currServer = entry.getValue();<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      RegionInfo currRegion = entry.getKey();<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      if (rsGroupInfo.getTables().contains(currTable)) {<a name="line.634"></a>
+<span class="sourceLineNo">635</span>        assignments.putIfAbsent(currTable, new HashMap&lt;&gt;());<a name="line.635"></a>
+<span class="sourceLineNo">636</span>        assignments.get(currTable).putIfAbsent(currServer, new ArrayList&lt;&gt;());<a name="line.636"></a>
+<span class="sourceLineNo">637</span>        assignments.get(currTable).get(currServer).add(currRegion);<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      }<a name="line.638"></a>
+<span class="sourceLineNo">639</span>    }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverMap = Maps.newHashMap();<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    for(ServerName serverName: master.getServerManager().getOnlineServers().keySet()) {<a name="line.642"></a>
+<span class="sourceLineNo">643</span>      if(rsGroupInfo.getServers().contains(serverName.getAddress())) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>        serverMap.put(serverName, Collections.emptyList());<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      }<a name="line.645"></a>
+<span class="sourceLineNo">646</span>    }<a name="line.646"></a>
+<span class="sourceLineNo">647</span><a name="line.647"></a>
+<span class="sourceLineNo">648</span>    // add all tables that are members of the group<a name="line.648"></a>
+<span class="sourceLineNo">649</span>    for(TableName tableName : rsGroupInfo.getTables()) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>      if(assignments.containsKey(tableName)) {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>        result.put(tableName, new HashMap&lt;&gt;());<a name="line.651"></a>
+<span class="sourceLineNo">652</span>        result.get(tableName).putAll(serverMap);<a name="line.652"></a>
+<span class="sourceLineNo">653</span>        result.get(tableName).putAll(assignments.get(tableName));<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        LOG.debug("Adding assignments for " + tableName + ": " + assignments.get(tableName));<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      }<a name="line.655"></a>
+<span class="sourceLineNo">656</span>    }<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>    return result;<a name="line.658"></a>
+<span class="sourceLineNo">659</span>  }<a name="line.659"></a>
+<span class="sourceLineNo">660</span><a name="line.660"></a>
+<span class="sourceLineNo">661</span>  /**<a name="line.661"></a>
+<span class="sourceLineNo">662</span>   * Check if the set of servers are belong to dead servers list or online servers list.<a name="line.662"></a>
+<span class="sourceLineNo">663</span>   * @param servers servers to remove<a name="line.663"></a>
+<span class="sourceLineNo">664</span>   */<a name="line.664"></a>
+<span class="sourceLineNo">665</span>  private void checkForDeadOrOnlineServers(Set&lt;Address&gt; servers) throws ConstraintException {<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    // This uglyness is because we only have Address, not ServerName.<a name="line.666"></a>
+<span class="sourceLineNo">667</span>    Set&lt;Address&gt; onlineServers = new HashSet&lt;&gt;();<a name="line.667"></a>
+<span class="sourceLineNo">668</span>    for(ServerName server: master.getServerManager().getOnlineServers().keySet()) {<a name="line.668"></a>
+<span class="sourceLineNo">669</span>      onlineServers.add(server.getAddress());<a name="line.669"></a>
+<span class="sourceLineNo">670</span>    }<a name="line.670"></a>
+<span class="sourceLineNo">671</span><a name="line.671"></a>
+<span class="sourceLineNo">672</span>    Set&lt;Address&gt; deadServers = new HashSet&lt;&gt;();<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    for(ServerName server: master.getServerManager().getDeadServers().copyServerNames()) {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>      deadServers.add(server.getAddress());<a name="line.674"></a>
+<span class="sourceLineNo">675</span>    }<a name="line.675"></a>
+<span class="sourceLineNo">676</span><a name="line.676"></a>
+<span class="sourceLineNo">677</span>    for (Address address: servers) {<a name="line.677"></a>
+<span class="sourceLineNo">678</span>      if (onlineServers.contains(address)) {<a name="line.678"></a>
+<span class="sourceLineNo">679</span>        throw new ConstraintException(<a name="line.679"></a>
+<span class="sourceLineNo">680</span>            "Server " + address + " is an online server, not allowed to remove.");<a name="line.680"></a>
+<span class="sourceLineNo">681</span>      }<a name="line.681"></a>
+<span class="sourceLineNo">682</span>      if (deadServers.contains(address)) {<a name="line.682"></a>
+<span class="sourceLineNo">683</span>        throw new ConstraintException(<a name="line.683"></a>
+<span class="sourceLineNo">684</span>            "Server " + address + " is on the dead servers list,"<a name="line.684"></a>
+<span class="sourceLineNo">685</span>                + " Maybe it will come back again, not allowed to remove.");<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      }<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    }<a name="line.687"></a>
+<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
+<span class="sourceLineNo">689</span>}<a name="line.689"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
index a5f6a1a..8f39ade 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
@@ -125,7 +125,13 @@
 <span class="sourceLineNo">117</span>   */<a name="line.117"></a>
 <span class="sourceLineNo">118</span>  void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.118"></a>
 <span class="sourceLineNo">119</span>      String srcGroup, String dstGroup) throws IOException;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>}<a name="line.120"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * Remove decommissioned servers from rsgroup<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * @param servers set of servers to remove<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  void removeServers(Set&lt;Address&gt; servers) throws IOException;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>}<a name="line.126"></a>
 
 
 


[37/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
index 284e7ad..76baf46 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.124">RSGroupAdminEndpoint.RSGroupAdminServiceImpl</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#line.129">RSGroupAdminEndpoint.RSGroupAdminServiceImpl</a>
 extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</pre>
 <div class="block">Implementation of RSGroupAdminService defined in RSGroupAdmin.proto.
  This class calls <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html" title="class in org.apache.hadoop.hbase.rsgroup"><code>RSGroupAdminServer</code></a> for actual work, converts result to protocol
@@ -260,6 +260,14 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <div class="block"><code>rpc RemoveRSGroup(.hbase.pb.RemoveRSGroupRequest) returns (.hbase.pb.RemoveRSGroupResponse);</code></div>
 </td>
 </tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#removeServers-com.google.protobuf.RpcController-org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersRequest-com.google.protobuf.RpcCallback-">removeServers</a></span>(com.google.protobuf.RpcController&nbsp;controller,
+             org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersRequest&nbsp;request,
+             com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersResponse&gt;&nbsp;done)</code>
+<div class="block"><code>rpc RemoveServers(.hbase.pb.RemoveServersRequest) returns (.hbase.pb.RemoveServersResponse);</code></div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService">
@@ -295,7 +303,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSGroupAdminServiceImpl</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.124">RSGroupAdminServiceImpl</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.129">RSGroupAdminServiceImpl</a>()</pre>
 </li>
 </ul>
 </li>
@@ -312,7 +320,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupInfo</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.126">getRSGroupInfo</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.131">getRSGroupInfo</a>(com.google.protobuf.RpcController&nbsp;controller,
                            org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoRequest&nbsp;request,
                            com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
@@ -329,7 +337,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupInfoOfTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.144">getRSGroupInfoOfTable</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.149">getRSGroupInfoOfTable</a>(com.google.protobuf.RpcController&nbsp;controller,
                                   org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfTableRequest&nbsp;request,
                                   com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfTableResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
@@ -346,7 +354,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>moveServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.162">moveServers</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.167">moveServers</a>(com.google.protobuf.RpcController&nbsp;controller,
                         org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersRequest&nbsp;request,
                         com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
@@ -363,7 +371,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>moveTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.180">moveTables</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.185">moveTables</a>(com.google.protobuf.RpcController&nbsp;controller,
                        org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesRequest&nbsp;request,
                        com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
@@ -380,7 +388,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>addRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.198">addRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.203">addRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
                        org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupRequest&nbsp;request,
                        com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.AddRSGroupResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
@@ -397,7 +405,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>removeRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.211">removeRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.216">removeRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
                           org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupRequest&nbsp;request,
                           com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
@@ -414,7 +422,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceRSGroup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.225">balanceRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.230">balanceRSGroup</a>(com.google.protobuf.RpcController&nbsp;controller,
                            org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupRequest&nbsp;request,
                            com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.BalanceRSGroupResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
@@ -431,7 +439,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>listRSGroupInfos</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.239">listRSGroupInfos</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.244">listRSGroupInfos</a>(com.google.protobuf.RpcController&nbsp;controller,
                              org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosRequest&nbsp;request,
                              com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.ListRSGroupInfosResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
@@ -448,7 +456,7 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupInfoOfServer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.254">getRSGroupInfoOfServer</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.259">getRSGroupInfoOfServer</a>(com.google.protobuf.RpcController&nbsp;controller,
                                    org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerRequest&nbsp;request,
                                    com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.GetRSGroupInfoOfServerResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
@@ -462,10 +470,10 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 <a name="moveServersAndTables-com.google.protobuf.RpcController-org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesRequest-com.google.protobuf.RpcCallback-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>moveServersAndTables</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.272">moveServersAndTables</a>(com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.277">moveServersAndTables</a>(com.google.protobuf.RpcController&nbsp;controller,
                                  org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesRequest&nbsp;request,
                                  com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveServersAndTablesResponse&gt;&nbsp;done)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
@@ -476,6 +484,23 @@ extends org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdm
 </dl>
 </li>
 </ul>
+<a name="removeServers-com.google.protobuf.RpcController-org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersRequest-com.google.protobuf.RpcCallback-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#line.299">removeServers</a>(com.google.protobuf.RpcController&nbsp;controller,
+                          org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersRequest&nbsp;request,
+                          com.google.protobuf.RpcCallback&lt;org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersResponse&gt;&nbsp;done)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></span></div>
+<div class="block"><code>rpc RemoveServers(.hbase.pb.RemoveServersRequest) returns (.hbase.pb.RemoveServersResponse);</code></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>removeServers</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService</code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>


[22/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html
index 82c4bde..30ea6df 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html
@@ -96,7 +96,17 @@
 <span class="sourceLineNo">088</span>   */<a name="line.88"></a>
 <span class="sourceLineNo">089</span>  void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables,<a name="line.89"></a>
 <span class="sourceLineNo">090</span>                            String targetGroup) throws IOException;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>}<a name="line.91"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   * Remove decommissioned servers from rsgroup.<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * 1. Sometimes we may find the server aborted due to some hardware failure and we must offline<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   * the server for repairing. Or we need to move some servers to join other clusters.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   * So we need to remove these servers from the rsgroup.<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * 2. Dead/recovering/live servers will be disallowed.<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * @param servers set of servers to remove<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  void removeServers(Set&lt;Address&gt; servers) throws IOException;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>}<a name="line.101"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html
index 02678e8..514696b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html
@@ -50,170 +50,190 @@
 <span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.MoveTablesRequest;<a name="line.42"></a>
 <span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RSGroupAdminService;<a name="line.43"></a>
 <span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveRSGroupRequest;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos;<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import com.google.protobuf.ServiceException;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>/**<a name="line.50"></a>
-<span class="sourceLineNo">051</span> * Client used for managing region server group information.<a name="line.51"></a>
-<span class="sourceLineNo">052</span> */<a name="line.52"></a>
-<span class="sourceLineNo">053</span>@InterfaceAudience.Private<a name="line.53"></a>
-<span class="sourceLineNo">054</span>class RSGroupAdminClient implements RSGroupAdmin {<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  private RSGroupAdminService.BlockingInterface stub;<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public RSGroupAdminClient(Connection conn) throws IOException {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    stub = RSGroupAdminService.newBlockingStub(conn.getAdmin().coprocessorService());<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  }<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  @Override<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  public RSGroupInfo getRSGroupInfo(String groupName) throws IOException {<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    try {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      GetRSGroupInfoResponse resp = stub.getRSGroupInfo(null,<a name="line.64"></a>
-<span class="sourceLineNo">065</span>          GetRSGroupInfoRequest.newBuilder().setRSGroupName(groupName).build());<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      if(resp.hasRSGroupInfo()) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>        return RSGroupProtobufUtil.toGroupInfo(resp.getRSGroupInfo());<a name="line.67"></a>
-<span class="sourceLineNo">068</span>      }<a name="line.68"></a>
-<span class="sourceLineNo">069</span>      return null;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    } catch (ServiceException e) {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    }<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  @Override<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public RSGroupInfo getRSGroupInfoOfTable(TableName tableName) throws IOException {<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    GetRSGroupInfoOfTableRequest request = GetRSGroupInfoOfTableRequest.newBuilder().setTableName(<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        ProtobufUtil.toProtoTableName(tableName)).build();<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    try {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      GetRSGroupInfoOfTableResponse resp = stub.getRSGroupInfoOfTable(null, request);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      if (resp.hasRSGroupInfo()) {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>        return RSGroupProtobufUtil.toGroupInfo(resp.getRSGroupInfo());<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      }<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      return null;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    } catch (ServiceException e) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
-<span class="sourceLineNo">089</span><a name="line.89"></a>
-<span class="sourceLineNo">090</span>  @Override<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public void moveServers(Set&lt;Address&gt; servers, String targetGroup) throws IOException {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    Set&lt;HBaseProtos.ServerName&gt; hostPorts = Sets.newHashSet();<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    for(Address el: servers) {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      hostPorts.add(HBaseProtos.ServerName.newBuilder()<a name="line.94"></a>
-<span class="sourceLineNo">095</span>        .setHostName(el.getHostname())<a name="line.95"></a>
-<span class="sourceLineNo">096</span>        .setPort(el.getPort())<a name="line.96"></a>
-<span class="sourceLineNo">097</span>        .build());<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    }<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    MoveServersRequest request = MoveServersRequest.newBuilder()<a name="line.99"></a>
-<span class="sourceLineNo">100</span>            .setTargetGroup(targetGroup)<a name="line.100"></a>
-<span class="sourceLineNo">101</span>            .addAllServers(hostPorts)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>            .build();<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    try {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      stub.moveServers(null, request);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    } catch (ServiceException e) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
-<span class="sourceLineNo">109</span><a name="line.109"></a>
-<span class="sourceLineNo">110</span>  @Override<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public void moveTables(Set&lt;TableName&gt; tables, String targetGroup) throws IOException {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    MoveTablesRequest.Builder builder = MoveTablesRequest.newBuilder().setTargetGroup(targetGroup);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    for(TableName tableName: tables) {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      builder.addTableName(ProtobufUtil.toProtoTableName(tableName));<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    try {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      stub.moveTables(null, builder.build());<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    } catch (ServiceException e) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  @Override<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  public void addRSGroup(String groupName) throws IOException {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    AddRSGroupRequest request = AddRSGroupRequest.newBuilder().setRSGroupName(groupName).build();<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    try {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      stub.addRSGroup(null, request);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    } catch (ServiceException e) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  @Override<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public void removeRSGroup(String name) throws IOException {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    RemoveRSGroupRequest request = RemoveRSGroupRequest.newBuilder().setRSGroupName(name).build();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    try {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      stub.removeRSGroup(null, request);<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    } catch (ServiceException e) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>  }<a name="line.141"></a>
-<span class="sourceLineNo">142</span><a name="line.142"></a>
-<span class="sourceLineNo">143</span>  @Override<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  public boolean balanceRSGroup(String groupName) throws IOException {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    BalanceRSGroupRequest request = BalanceRSGroupRequest.newBuilder()<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        .setRSGroupName(groupName).build();<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    try {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      return stub.balanceRSGroup(null, request).getBalanceRan();<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    } catch (ServiceException e) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  @Override<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  public List&lt;RSGroupInfo&gt; listRSGroups() throws IOException {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    try {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      List&lt;RSGroupProtos.RSGroupInfo&gt; resp = stub.listRSGroupInfos(null,<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          ListRSGroupInfosRequest.getDefaultInstance()).getRSGroupInfoList();<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      List&lt;RSGroupInfo&gt; result = new ArrayList&lt;&gt;(resp.size());<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      for(RSGroupProtos.RSGroupInfo entry : resp) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        result.add(RSGroupProtobufUtil.toGroupInfo(entry));<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      return result;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    } catch (ServiceException e) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span>  @Override<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public RSGroupInfo getRSGroupOfServer(Address hostPort) throws IOException {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    GetRSGroupInfoOfServerRequest request = GetRSGroupInfoOfServerRequest.newBuilder()<a name="line.171"></a>
-<span class="sourceLineNo">172</span>            .setServer(HBaseProtos.ServerName.newBuilder()<a name="line.172"></a>
-<span class="sourceLineNo">173</span>                .setHostName(hostPort.getHostname())<a name="line.173"></a>
-<span class="sourceLineNo">174</span>                .setPort(hostPort.getPort())<a name="line.174"></a>
-<span class="sourceLineNo">175</span>                .build())<a name="line.175"></a>
-<span class="sourceLineNo">176</span>            .build();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    try {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      GetRSGroupInfoOfServerResponse resp = stub.getRSGroupInfoOfServer(null, request);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      if (resp.hasRSGroupInfo()) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>        return RSGroupProtobufUtil.toGroupInfo(resp.getRSGroupInfo());<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      }<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return null;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    } catch (ServiceException e) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  }<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  @Override<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  public void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables, String targetGroup)<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      throws IOException {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    MoveServersAndTablesRequest.Builder builder =<a name="line.191"></a>
-<span class="sourceLineNo">192</span>            MoveServersAndTablesRequest.newBuilder().setTargetGroup(targetGroup);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    for(Address el: servers) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      builder.addServers(HBaseProtos.ServerName.newBuilder()<a name="line.194"></a>
-<span class="sourceLineNo">195</span>              .setHostName(el.getHostname())<a name="line.195"></a>
-<span class="sourceLineNo">196</span>              .setPort(el.getPort())<a name="line.196"></a>
-<span class="sourceLineNo">197</span>              .build());<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    for(TableName tableName: tables) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      builder.addTableName(ProtobufUtil.toProtoTableName(tableName));<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    try {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      stub.moveServersAndTables(null, builder.build());<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    } catch (ServiceException e) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    }<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  }<a name="line.207"></a>
-<span class="sourceLineNo">208</span>}<a name="line.208"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersRequest;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.protobuf.generated.RSGroupProtos;<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.shaded.com.google.common.collect.Sets;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import com.google.protobuf.ServiceException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>/**<a name="line.51"></a>
+<span class="sourceLineNo">052</span> * Client used for managing region server group information.<a name="line.52"></a>
+<span class="sourceLineNo">053</span> */<a name="line.53"></a>
+<span class="sourceLineNo">054</span>@InterfaceAudience.Private<a name="line.54"></a>
+<span class="sourceLineNo">055</span>class RSGroupAdminClient implements RSGroupAdmin {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private RSGroupAdminService.BlockingInterface stub;<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  public RSGroupAdminClient(Connection conn) throws IOException {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    stub = RSGroupAdminService.newBlockingStub(conn.getAdmin().coprocessorService());<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  @Override<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public RSGroupInfo getRSGroupInfo(String groupName) throws IOException {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    try {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      GetRSGroupInfoResponse resp = stub.getRSGroupInfo(null,<a name="line.65"></a>
+<span class="sourceLineNo">066</span>          GetRSGroupInfoRequest.newBuilder().setRSGroupName(groupName).build());<a name="line.66"></a>
+<span class="sourceLineNo">067</span>      if(resp.hasRSGroupInfo()) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>        return RSGroupProtobufUtil.toGroupInfo(resp.getRSGroupInfo());<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      }<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      return null;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    } catch (ServiceException e) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  @Override<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public RSGroupInfo getRSGroupInfoOfTable(TableName tableName) throws IOException {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    GetRSGroupInfoOfTableRequest request = GetRSGroupInfoOfTableRequest.newBuilder().setTableName(<a name="line.78"></a>
+<span class="sourceLineNo">079</span>        ProtobufUtil.toProtoTableName(tableName)).build();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    try {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      GetRSGroupInfoOfTableResponse resp = stub.getRSGroupInfoOfTable(null, request);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>      if (resp.hasRSGroupInfo()) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        return RSGroupProtobufUtil.toGroupInfo(resp.getRSGroupInfo());<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      return null;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    } catch (ServiceException e) {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Override<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void moveServers(Set&lt;Address&gt; servers, String targetGroup) throws IOException {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    Set&lt;HBaseProtos.ServerName&gt; hostPorts = Sets.newHashSet();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    for(Address el: servers) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      hostPorts.add(HBaseProtos.ServerName.newBuilder()<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        .setHostName(el.getHostname())<a name="line.96"></a>
+<span class="sourceLineNo">097</span>        .setPort(el.getPort())<a name="line.97"></a>
+<span class="sourceLineNo">098</span>        .build());<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    MoveServersRequest request = MoveServersRequest.newBuilder()<a name="line.100"></a>
+<span class="sourceLineNo">101</span>            .setTargetGroup(targetGroup)<a name="line.101"></a>
+<span class="sourceLineNo">102</span>            .addAllServers(hostPorts)<a name="line.102"></a>
+<span class="sourceLineNo">103</span>            .build();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    try {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      stub.moveServers(null, request);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    } catch (ServiceException e) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>  @Override<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public void moveTables(Set&lt;TableName&gt; tables, String targetGroup) throws IOException {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    MoveTablesRequest.Builder builder = MoveTablesRequest.newBuilder().setTargetGroup(targetGroup);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    for(TableName tableName: tables) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      builder.addTableName(ProtobufUtil.toProtoTableName(tableName));<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    try {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>      stub.moveTables(null, builder.build());<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    } catch (ServiceException e) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    }<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  @Override<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  public void addRSGroup(String groupName) throws IOException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    AddRSGroupRequest request = AddRSGroupRequest.newBuilder().setRSGroupName(groupName).build();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    try {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      stub.addRSGroup(null, request);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    } catch (ServiceException e) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    }<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>  @Override<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  public void removeRSGroup(String name) throws IOException {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    RemoveRSGroupRequest request = RemoveRSGroupRequest.newBuilder().setRSGroupName(name).build();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    try {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      stub.removeRSGroup(null, request);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    } catch (ServiceException e) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>  @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  public boolean balanceRSGroup(String groupName) throws IOException {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    BalanceRSGroupRequest request = BalanceRSGroupRequest.newBuilder()<a name="line.146"></a>
+<span class="sourceLineNo">147</span>        .setRSGroupName(groupName).build();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    try {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      return stub.balanceRSGroup(null, request).getBalanceRan();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    } catch (ServiceException e) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  @Override<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  public List&lt;RSGroupInfo&gt; listRSGroups() throws IOException {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    try {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      List&lt;RSGroupProtos.RSGroupInfo&gt; resp = stub.listRSGroupInfos(null,<a name="line.158"></a>
+<span class="sourceLineNo">159</span>          ListRSGroupInfosRequest.getDefaultInstance()).getRSGroupInfoList();<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      List&lt;RSGroupInfo&gt; result = new ArrayList&lt;&gt;(resp.size());<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      for(RSGroupProtos.RSGroupInfo entry : resp) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        result.add(RSGroupProtobufUtil.toGroupInfo(entry));<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return result;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    } catch (ServiceException e) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  }<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>  @Override<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public RSGroupInfo getRSGroupOfServer(Address hostPort) throws IOException {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    GetRSGroupInfoOfServerRequest request = GetRSGroupInfoOfServerRequest.newBuilder()<a name="line.172"></a>
+<span class="sourceLineNo">173</span>            .setServer(HBaseProtos.ServerName.newBuilder()<a name="line.173"></a>
+<span class="sourceLineNo">174</span>                .setHostName(hostPort.getHostname())<a name="line.174"></a>
+<span class="sourceLineNo">175</span>                .setPort(hostPort.getPort())<a name="line.175"></a>
+<span class="sourceLineNo">176</span>                .build())<a name="line.176"></a>
+<span class="sourceLineNo">177</span>            .build();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    try {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      GetRSGroupInfoOfServerResponse resp = stub.getRSGroupInfoOfServer(null, request);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      if (resp.hasRSGroupInfo()) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        return RSGroupProtobufUtil.toGroupInfo(resp.getRSGroupInfo());<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      return null;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    } catch (ServiceException e) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>  @Override<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  public void moveServersAndTables(Set&lt;Address&gt; servers, Set&lt;TableName&gt; tables, String targetGroup)<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      throws IOException {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    MoveServersAndTablesRequest.Builder builder =<a name="line.192"></a>
+<span class="sourceLineNo">193</span>            MoveServersAndTablesRequest.newBuilder().setTargetGroup(targetGroup);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    for(Address el: servers) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      builder.addServers(HBaseProtos.ServerName.newBuilder()<a name="line.195"></a>
+<span class="sourceLineNo">196</span>              .setHostName(el.getHostname())<a name="line.196"></a>
+<span class="sourceLineNo">197</span>              .setPort(el.getPort())<a name="line.197"></a>
+<span class="sourceLineNo">198</span>              .build());<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    for(TableName tableName: tables) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      builder.addTableName(ProtobufUtil.toProtoTableName(tableName));<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    try {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      stub.moveServersAndTables(null, builder.build());<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    } catch (ServiceException e) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  @Override<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  public void removeServers(Set&lt;Address&gt; servers) throws IOException {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    Set&lt;HBaseProtos.ServerName&gt; hostPorts = Sets.newHashSet();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    for(Address el: servers) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      hostPorts.add(HBaseProtos.ServerName.newBuilder()<a name="line.214"></a>
+<span class="sourceLineNo">215</span>          .setHostName(el.getHostname())<a name="line.215"></a>
+<span class="sourceLineNo">216</span>          .setPort(el.getPort())<a name="line.216"></a>
+<span class="sourceLineNo">217</span>          .build());<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    }<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    RemoveServersRequest request = RemoveServersRequest.newBuilder()<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        .addAllServers(hostPorts)<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        .build();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    try {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      stub.removeServers(null, request);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    } catch (ServiceException e) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      throw ProtobufUtil.handleRemoteException(e);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>}<a name="line.228"></a>
 
 
 


[32/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/security/visibility/VisibilityController.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/visibility/VisibilityController.html b/devapidocs/org/apache/hadoop/hbase/security/visibility/VisibilityController.html
index 3ca0cce..bf173b9 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/visibility/VisibilityController.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/visibility/VisibilityController.html
@@ -551,7 +551,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Master
 <!--   -->
 </a>
 <h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.u
 til.List-">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.ht
 ml#postCompletedCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCompletedCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Mas
 terObserver.html#postCompletedMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postCompletedModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableN
 ame-">postCompletedTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDeleteNamespace</a>, <a href="../../../../../../org/apache/
 hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.St
 ring-">postEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hb
 ase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">postGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">postGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor
 /MasterObserver.html#postListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href=".
 ./../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postModifyTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.h
 base.ServerName-">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterO
 bserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">postRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-
 org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hado
 op.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase
 .coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replic
 ation.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-o
 rg.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateN
 amespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org
 .apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a>, <a href="../../../../../../org/apache/had
 oop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a>, <a 
 href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a
 >, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org
 .apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocesso
 r/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a>, <a href="../../../../../../org/apache/hado
 op/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">preRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-
 org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDesc
 riptor-">preRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.Gl
 obalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnaps
 hot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preSplitRegionAfterMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preStopMaster-org.apache.hadoop.hbase.c
 oprocessor.ObserverContext-">preStopMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUpdateRepli
 cationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postAssign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.u
 til.List-">postBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-boolean-">postBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-boolean-">postBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.ht
 ml#postCompletedCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCompletedCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postCompletedEnableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/Mas
 terObserver.html#postCompletedMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postCompletedModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-">postCompletedSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCompletedTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableN
 ame-">postCompletedTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">postCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDecommissionRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-boolean-">postDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDeleteNamespace</a>, <a href="../../../../../../org/apache/
 hadoop/hbase/coprocessor/MasterObserver.html#postDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postDisableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postDisableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.St
 ring-">postEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ClusterStatus-">postGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetProcedures-org.apache.hadoop.hb
 ase.coprocessor.ObserverContext-">postGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">postGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">postGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor
 /MasterObserver.html#postListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">postListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">postListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postMergeRegions</a>, <a href=".
 ./../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-org.apache.hadoop.hbase.client.RegionInfo-">postMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">postModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postModifyTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">postModifyTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMove-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.h
 base.ServerName-">postMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">postMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">postMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.List-">postRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterO
 bserver.html#postRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">postRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">postRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-jav
 a.lang.String-">postRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackMergeRegionsAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">postRollBackMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRollBackSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">postRollBackSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">pos
 tSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-or
 g.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">postSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">postTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">postUnassign</a>, <a href="../../../../.
 ./../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">postUpdateReplicationPeerConfig</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAbortProcedure-org.apache.hadoop.hbase.coprocessor.ObserverContext-long-">preAbortProcedure</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preAddReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAddRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preAddRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preAssign-org.apache.had
 oop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preAssign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalance-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preBalance</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preBalanceRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preBalanceSwitch-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-">preBalanceSwitch</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preClearDeadServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase
 .client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preCloneSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preCreateNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preCreateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionInfo:A-">preCreateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDecommissionRegionServers-org.apache.hadoop.hbase.
 coprocessor.ObserverContext-java.util.List-boolean-">preDecommissionRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDeleteNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preDeleteSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDeleteTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDeleteTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocess
 or/MasterObserver.html#preDisableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preDisableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preDisableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preDisableTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preEnableReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preEnableTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preEnableTableActio
 n</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetClusterStatus-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetClusterStatus</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetLocks-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetLocks</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetNamespaceDescriptor-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetNamespaceDescriptor</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetProcedures-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preGetProcedures</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preGetReplicationPeerConfig</a>, <a href="../../../../../../org/apache/ha
 doop/hbase/coprocessor/MasterObserver.html#preGetTableDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-java.lang.String-">preGetTableDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preGetTableNames-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.lang.String-">preGetTableNames</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListDecommissionedRegionServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preListDecommissionedRegionServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListNamespaceDescriptors-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-">preListNamespaceDescriptors</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListReplicationPeers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.
 String-">preListReplicationPeers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preListSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-">preListSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preLockHeartbeat-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-java.lang.String-">preLockHeartbeat</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMasterInitialization-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preMasterInitialization</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegions-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegions</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsA
 ction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-">preMergeRegionsAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMergeRegionsCommitAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo:A-java.util.List-">preMergeRegionsCommitAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyNamespace-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.NamespaceDescriptor-">preModifyNamespace</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preModifyTableAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.TableDescriptor-">preModifyTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMove-org.apache.hadoop.hbase.copro
 cessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-">preMove</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveServersAndTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.util.Set-java.lang.String-">preMoveServersAndTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preMoveTables-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-java.lang.String-">preMoveTables</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRecommissionRegionServer-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.ServerName-java.util.
 List-">preRecommissionRegionServer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRegionOffline-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-">preRegionOffline</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveReplicationPeer-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveReplicationPeer</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRequestLock-org.apache.hadoop.hbase.coprocessor.ObserverConte
 xt-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.RegionInfo:A-java.lang.String-">preRequestLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRestoreSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preRestoreSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetNamespaceQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetNamespaceQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetSplitOrMergeEnabled-org.apache.hadoop.hbase.coprocessor.ObserverContext-boolean-org.apache.hadoop.hbase.client.MasterSwitchType-">preSetSplitOrMergeEnabled</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.ht
 ml#preSetTableQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetTableQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-java.lang.String-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSetUserQuota-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.quotas.GlobalQuotaSettings-">preSetUserQuota</a>, <a href="../../../../../../org/apache/h
 adoop/hbase/coprocessor/MasterObserver.html#preShutdown-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preShutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">preSnapshot</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegion-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegion</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-byte:A-">preSplitRegionAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionAfterMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-">p
 reSplitRegionAfterMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preSplitRegionBeforeMETAAction-org.apache.hadoop.hbase.coprocessor.ObserverContext-byte:A-java.util.List-">preSplitRegionBeforeMETAAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preStopMaster-org.apache.hadoop.hbase.coprocessor.ObserverContext-">preStopMaster</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTableFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTableFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTable-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.TableName-">preTruncateTable</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preTruncateTableAction-org.apache.hadoop.hbase.coprocessor.ObserverCon
 text-org.apache.hadoop.hbase.TableName-">preTruncateTableAction</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUnassign-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-boolean-">preUnassign</a>, <a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preUpdateReplicationPeerConfig-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">preUpdateReplicationPeerConfig</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index 29f4bfc..fc3b716 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -198,9 +198,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index d38891b..4a5ff2e 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -537,14 +537,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html b/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
index f23ec07..529f3c8 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.53">AsyncFSWALProvider.AsyncWriter</a>
+<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.52">AsyncFSWALProvider.AsyncWriter</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a></pre>
 </li>
 </ul>
@@ -182,7 +182,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWri
 <ul class="blockListLast">
 <li class="blockList">
 <h4>init</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#line.59">init</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html#line.58">init</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
           org.apache.hadoop.fs.Path&nbsp;path,
           org.apache.hadoop.conf.Configuration&nbsp;c,
           boolean&nbsp;overwritable)

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html b/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
index 4f450ba..07fe609 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html
@@ -120,7 +120,7 @@ var activeTableTab = "activeTableTab";
 <br>
 <pre>@InterfaceAudience.Private
  @InterfaceStability.Evolving
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.48">AsyncFSWALProvider</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.47">AsyncFSWALProvider</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvider.html" title="class in org.apache.hadoop.hbase.wal">AbstractFSWALProvider</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a>&gt;</pre>
 <div class="block">A WAL provider that use <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>AsyncFSWAL</code></a>.</div>
 </li>
@@ -227,11 +227,11 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">createAsyncWriter</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">createAsyncWriter</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                  org.apache.hadoop.fs.FileSystem&nbsp;fs,
                  org.apache.hadoop.fs.Path&nbsp;path,
                  boolean&nbsp;overwritable,
-                 org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+                 org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>
 <div class="block">public because of AsyncFSWAL.</div>
 </td>
@@ -279,7 +279,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.50">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.49">LOG</a></pre>
 </li>
 </ul>
 <a name="eventLoopGroup">
@@ -288,7 +288,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockList">
 <li class="blockList">
 <h4>eventLoopGroup</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.63">eventLoopGroup</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.62">eventLoopGroup</a></pre>
 </li>
 </ul>
 <a name="channelClass">
@@ -297,7 +297,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockListLast">
 <li class="blockList">
 <h4>channelClass</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.65">channelClass</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.64">channelClass</a></pre>
 </li>
 </ul>
 </li>
@@ -314,7 +314,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncFSWALProvider</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.48">AsyncFSWALProvider</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.47">AsyncFSWALProvider</a>()</pre>
 </li>
 </ul>
 </li>
@@ -331,7 +331,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockList">
 <li class="blockList">
 <h4>createWAL</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.67">createWAL</a>()
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.66">createWAL</a>()
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -347,7 +347,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 <ul class="blockList">
 <li class="blockList">
 <h4>doInit</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.76">doInit</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.75">doInit</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -357,17 +357,17 @@ extends <a href="../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvide
 </dl>
 </li>
 </ul>
-<a name="createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">
+<a name="createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createAsyncWriter</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.92">createAsyncWriter</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#line.91">createAsyncWriter</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                                org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                                                org.apache.hadoop.fs.Path&nbsp;path,
                                                                boolean&nbsp;overwritable,
-                                                               org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+                                                               org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)
                                                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">public because of AsyncFSWAL. Should be package-private</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/wal/class-use/AsyncFSWALProvider.AsyncWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/class-use/AsyncFSWALProvider.AsyncWriter.html b/devapidocs/org/apache/hadoop/hbase/wal/class-use/AsyncFSWALProvider.AsyncWriter.html
index af8ea20..3e2257d 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/class-use/AsyncFSWALProvider.AsyncWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/class-use/AsyncFSWALProvider.AsyncWriter.html
@@ -132,11 +132,11 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a></code></td>
-<td class="colLast"><span class="typeNameLabel">AsyncFSWALProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">createAsyncWriter</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<td class="colLast"><span class="typeNameLabel">AsyncFSWALProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">createAsyncWriter</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                  org.apache.hadoop.fs.FileSystem&nbsp;fs,
                  org.apache.hadoop.fs.Path&nbsp;path,
                  boolean&nbsp;overwritable,
-                 org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+                 org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>
 <div class="block">public because of AsyncFSWAL.</div>
 </td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index 2af2b6e..f71ca25 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -175,8 +175,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 </ul>
 </li>
 </ul>


[48/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 25f623a..608396a 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -26,7 +26,7 @@ under the License.
     <copyright>&#169;2007 - 2017 The Apache Software Foundation</copyright>
     <item>
       <title>File: 3440,
-             Errors: 20775,
+             Errors: 20765,
              Warnings: 0,
              Infos: 0
       </title>
@@ -1343,7 +1343,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  0
                 </td>
               </tr>
                           <tr>
@@ -7293,7 +7293,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  5
+                  0
                 </td>
               </tr>
                           <tr>
@@ -15525,7 +15525,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  3
+                  0
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 7648ebf..5e695a7 100644
--- a/coc.html
+++ b/coc.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -380,7 +380,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index eeae238..081b718 100644
--- a/cygwin.html
+++ b/cygwin.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Installing Apache HBase (TM) on Windows using Cygwin</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -679,7 +679,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 1e02fec..203743d 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -445,7 +445,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index f21cc11..3b4c387 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1008,7 +1008,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index 373c230..a6ac01c 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -318,7 +318,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index d5fbded..b7275f4 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -974,7 +974,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-11-30</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 426f1b7..e7e727e 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3705,21 +3705,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Thu Nov 30 14:42:34 UTC 2017"</code></td>
+<td class="colLast"><code>"Fri Dec  1 14:42:20 UTC 2017"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"6a6409a30aa634875467683203de0e21e0491986"</code></td>
+<td class="colLast"><code>"2e8bd0036dbdf3a99786e5531495d8d4cb51b86c"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"252c37b6e2a91e50595f45109cbc77dd"</code></td>
+<td class="colLast"><code>"0be79d5711fa88be92020f5e7f116383"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -21922,12 +21922,26 @@
 <td class="colLast"><code>"hbase.wal.async.create.retries"</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.ASYNC_WAL_USE_SHARED_EVENT_LOOP">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#ASYNC_WAL_USE_SHARED_EVENT_LOOP">ASYNC_WAL_USE_SHARED_EVENT_LOOP</a></code></td>
+<td class="colLast"><code>"hbase.wal.async.use-shared-event-loop"</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES">DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES</a></code></td>
 <td class="colLast"><code>10</code></td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP">DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP</a></code></td>
+<td class="colLast"><code>true</code></td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.DEFAULT_WAL_BATCH_SIZE">
 <!--   -->
@@ -21936,6 +21950,13 @@
 <td class="colLast"><code>65536L</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.MAX_EPOCH">
+<!--   -->
+</a><code>private&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#MAX_EPOCH">MAX_EPOCH</a></code></td>
+<td class="colLast"><code>1073741823</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.WAL_BATCH_SIZE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index a81108a..1e43123 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -3771,6 +3771,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#ASYNC_WAL_CREATE_MAX_RETRIES">ASYNC_WAL_CREATE_MAX_RETRIES</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#ASYNC_WAL_USE_SHARED_EVENT_LOOP">ASYNC_WAL_USE_SHARED_EVENT_LOOP</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncAdmin</span></a> - Interface in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>
 <div class="block">The asynchronous administrative API for HBase.</div>
@@ -3886,7 +3888,7 @@
 <dd>
 <div class="block">An asynchronous implementation of FSWAL.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#AsyncFSWAL-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">AsyncFSWAL(FileSystem, Path, String, String, Configuration, List&lt;WALActionsListener&gt;, boolean, String, String, EventLoop, Class&lt;? extends Channel&gt;)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#AsyncFSWAL-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">AsyncFSWAL(FileSystem, Path, String, String, Configuration, List&lt;WALActionsListener&gt;, boolean, String, String, EventLoopGroup, Class&lt;? extends Channel&gt;)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html" title="class in org.apache.hadoop.hbase.wal"><span class="typeNameLink">AsyncFSWALProvider</span></a> - Class in <a href="org/apache/hadoop/hbase/wal/package-summary.html">org.apache.hadoop.hbase.wal</a></dt>
 <dd>
@@ -3973,7 +3975,7 @@
 <dd>
 <div class="block">AsyncWriter for protobuf-based WAL.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#AsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">AsyncProtobufLogWriter(EventLoop, Class&lt;? extends Channel&gt;)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncProtobufLogWriter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#AsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">AsyncProtobufLogWriter(EventLoopGroup, Class&lt;? extends Channel&gt;)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncProtobufLogWriter</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">AsyncProtobufLogWriter.OutputStreamWrapper</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/wal/package-summary.html">org.apache.hadoop.hbase.regionserver.wal</a></dt>
 <dd>&nbsp;</dd>
@@ -4163,8 +4165,6 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/AtomicUtils.html#AtomicUtils--">AtomicUtils()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/AtomicUtils.html" title="class in org.apache.hadoop.hbase.util">AtomicUtils</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#attachSpan-org.apache.htrace.core.Span-">attachSpan(Span)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html#attainSafePoint--">attainSafePoint()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog.RingBufferEventHandler</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html#attainSafePoint-long-">attainSafePoint(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog.RingBufferEventHandler</a></dt>
@@ -10283,6 +10283,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html#checkForClusterLevelSingleConf-java.lang.String-">checkForClusterLevelSingleConf(String)</a></span> - Method in class org.apache.hadoop.hbase.security.visibility.<a href="org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.html" title="class in org.apache.hadoop.hbase.security.visibility">VisibilityLabelServiceManager</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkForDeadOrOnlineServers-java.util.Set-">checkForDeadOrOnlineServers(Set&lt;Address&gt;)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupAdminServer</a></dt>
+<dd>
+<div class="block">Check if the set of servers are belong to dead servers list or online servers list.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/WALSplitter.PipelineController.html#checkForErrors--">checkForErrors()</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALSplitter.PipelineController.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.PipelineController</a></dt>
 <dd>
 <div class="block">Check for errors in the writer threads.</div>
@@ -16593,6 +16597,8 @@
 <dd>
 <div class="block">The attribute for storing the list of clusters that have consumed the change.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#consumeExecutor">consumeExecutor</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#consumeLock">consumeLock</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncClientScanner.html#consumer">consumer</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncClientScanner.html" title="class in org.apache.hadoop.hbase.client">AsyncClientScanner</a></dt>
@@ -18323,7 +18329,7 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncProcess.html#createAsyncRequestFuture-org.apache.hadoop.hbase.client.AsyncProcessTask-java.util.List-long-">createAsyncRequestFuture(AsyncProcessTask, List&lt;Action&gt;, long)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncProcess.html" title="class in org.apache.hadoop.hbase.client">AsyncProcess</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">createAsyncWriter(Configuration, FileSystem, Path, boolean, EventLoop, Class&lt;? extends Channel&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html" title="class in org.apache.hadoop.hbase.wal">AsyncFSWALProvider</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#createAsyncWriter-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-boolean-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">createAsyncWriter(Configuration, FileSystem, Path, boolean, EventLoopGroup, Class&lt;? extends Channel&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html" title="class in org.apache.hadoop.hbase.wal">AsyncFSWALProvider</a></dt>
 <dd>
 <div class="block">public because of AsyncFSWAL.</div>
 </dd>
@@ -21867,6 +21873,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES">DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP">DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessControlConstants.html#DEFAULT_ATTRIBUTE_EARLY_OUT">DEFAULT_ATTRIBUTE_EARLY_OUT</a></span> - Static variable in interface org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessControlConstants.html" title="interface in org.apache.hadoop.hbase.security.access">AccessControlConstants</a></dt>
 <dd>
 <div class="block">Default setting for hbase.security.access.early_out</div>
@@ -24554,8 +24562,6 @@
 <div class="block">DirectByteBuffers are garbage collected by using a phantom reference and a
  reference queue.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#detachSpan--">detachSpan()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html#detail-java.lang.String-">detail(String)</a></span> - Method in interface org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.html" title="interface in org.apache.hadoop.hbase.util">HBaseFsck.ErrorReporter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#detail-java.lang.String-">detail(String)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.PrintingErrorReporter</a></dt>
@@ -27198,6 +27204,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#eofAutoRecovery">eofAutoRecovery</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#epoch-int-">epoch(int)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#epochAndState">epochAndState</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html#EPSILON">EPSILON</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreConfig</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/ParseConstants.html#EQUAL_TO">EQUAL_TO</a></span> - Static variable in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/ParseConstants.html" title="class in org.apache.hadoop.hbase.filter">ParseConstants</a></dt>
@@ -27652,9 +27662,9 @@
 <dd>
 <div class="block">Default base class constructor.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#eventLoop">eventLoop</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#eventLoopGroup">eventLoopGroup</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#eventLoop">eventLoop</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncProtobufLogWriter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#eventLoopGroup">eventLoopGroup</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncProtobufLogWriter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html#eventLoopGroup">eventLoopGroup</a></span> - Variable in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/AsyncFSWALProvider.html" title="class in org.apache.hadoop.hbase.wal">AsyncFSWALProvider</a></dt>
 <dd>&nbsp;</dd>
@@ -63878,9 +63888,9 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#load-org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureLoader-">load(ProcedureStore.ProcedureLoader)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#load-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-org.apache.htrace.core.Span-">load(FSWALEntry, Span)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html" title="class in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#load-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-">load(FSWALEntry)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html" title="class in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck</a></dt>
 <dd>
-<div class="block">Load the truck with a <a href="org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSWALEntry</code></a> and associated <code>Span</code>.</div>
+<div class="block">Load the truck with a <a href="org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>FSWALEntry</code></a>.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html#load-org.apache.hadoop.hbase.regionserver.wal.SyncFuture-">load(SyncFuture)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html" title="class in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck</a></dt>
 <dd>
@@ -68167,6 +68177,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.html#MAX_DATA_LEN">MAX_DATA_LEN</a></span> - Static variable in class org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.html" title="class in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutput</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#MAX_EPOCH">MAX_EPOCH</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html#MAX_FILES_KEY">MAX_FILES_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreConfig</a></dt>
 <dd>
 <div class="block">The maximum number of files to compact within a stripe; same as for regular compaction.</div>
@@ -78156,6 +78168,8 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postClearDeadServers-java.util.List-java.util.List-">postClearDeadServers(List&lt;ServerName&gt;, List&lt;ServerName&gt;)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html#postClearDeadServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.List-java.util.List-">postClearDeadServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, List&lt;ServerName&gt;, List&lt;ServerName&gt;)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupAdminEndpoint</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postCloneSnapshot-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-">postCloneSnapshot(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, SnapshotDescription, TableDescriptor)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></dt>
 <dd>
 <div class="block">Called after a snapshot clone operation has been requested.</div>
@@ -78701,6 +78715,12 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRemoveRSGroup-java.lang.String-">postRemoveRSGroup(String)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html#postRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">postRemoveServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, Set&lt;Address&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></dt>
+<dd>
+<div class="block">Called after servers are removed from rsgroup</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#postRemoveServers-java.util.Set-">postRemoveServers(Set&lt;Address&gt;)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/RegionObserver.html#postReplayWALs-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.fs.Path-">postReplayWALs(ObserverContext&lt;? extends RegionCoprocessorEnvironment&gt;, RegionInfo, Path)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/RegionObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionObserver</a></dt>
 <dd>
 <div class="block">Called after replaying WALs for this region.</div>
@@ -80244,6 +80264,14 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveRSGroup-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">preRemoveRSGroup(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, Set&lt;Address&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MasterObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">MasterObserver</a></dt>
+<dd>
+<div class="block">Called before servers are removed from rsgroup</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html#preRemoveServers-java.util.Set-">preRemoveServers(Set&lt;Address&gt;)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AccessController.html#preRemoveServers-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.util.Set-">preRemoveServers(ObserverContext&lt;MasterCoprocessorEnvironment&gt;, Set&lt;Address&gt;)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AccessController.html" title="class in org.apache.hadoop.hbase.security.access">AccessController</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/RegionObserver.html#preReplayWALs-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.fs.Path-">preReplayWALs(ObserverContext&lt;? extends RegionCoprocessorEnvironment&gt;, RegionInfo, Path)</a></span> - Method in interface org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/RegionObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionObserver</a></dt>
 <dd>
 <div class="block">Called before replaying WALs for this region.</div>
@@ -87649,6 +87677,22 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ServerManager.html#removeServerFromDrainList-org.apache.hadoop.hbase.ServerName-">removeServerFromDrainList(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#removeServers-java.util.Set-">removeServers(Set&lt;Address&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupAdmin</a></dt>
+<dd>
+<div class="block">Remove decommissioned servers from rsgroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html#removeServers-java.util.Set-">removeServers(Set&lt;Address&gt;)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupAdminClient</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html#removeServers-com.google.protobuf.RpcController-org.apache.hadoop.hbase.protobuf.generated.RSGroupAdminProtos.RemoveServersRequest-com.google.protobuf.RpcCallback-">removeServers(RpcController, RSGroupAdminProtos.RemoveServersRequest, RpcCallback&lt;RSGroupAdminProtos.RemoveServersResponse&gt;)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.RSGroupAdminServiceImpl.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupAdminEndpoint.RSGroupAdminServiceImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#removeServers-java.util.Set-">removeServers(Set&lt;Address&gt;)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupAdminServer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#removeServers-java.util.Set-">removeServers(Set&lt;Address&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a></dt>
+<dd>
+<div class="block">Remove decommissioned servers from rsgroup</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#removeServers-java.util.Set-">removeServers(Set&lt;Address&gt;)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManagerImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ShutdownHookManager.html#removeShutdownHook-java.lang.Runnable-">removeShutdownHook(Runnable)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ShutdownHookManager.html" title="class in org.apache.hadoop.hbase.util">ShutdownHookManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ShutdownHookManager.ShutdownHookManagerV1.html#removeShutdownHook-java.lang.Runnable-">removeShutdownHook(Runnable)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ShutdownHookManager.ShutdownHookManagerV1.html" title="class in org.apache.hadoop.hbase.util">ShutdownHookManager.ShutdownHookManagerV1</a></dt>
@@ -90857,6 +90901,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/LogRoller.html#rollperiod">rollperiod</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#rollRequested">rollRequested</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#rollRetries">rollRetries</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#rollThreshold">rollThreshold</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dt>
@@ -93634,7 +93680,7 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">SecureAsyncProtobufLogWriter</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/wal/package-summary.html">org.apache.hadoop.hbase.regionserver.wal</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#SecureAsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">SecureAsyncProtobufLogWriter(EventLoop, Class&lt;? extends Channel&gt;)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SecureAsyncProtobufLogWriter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html#SecureAsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">SecureAsyncProtobufLogWriter(EventLoopGroup, Class&lt;? extends Channel&gt;)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SecureAsyncProtobufLogWriter</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/client/SecureBulkLoadClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">SecureBulkLoadClient</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>
@@ -102196,8 +102242,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/Call.html#span">span</a></span> - Variable in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/Call.html" title="class in org.apache.hadoop.hbase.ipc">Call</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html#span">span</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/trace/SpanReceiverHost.html#SPAN_RECEIVERS_CONF_KEY">SPAN_RECEIVERS_CONF_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.trace.<a href="org/apache/hadoop/hbase/trace/SpanReceiverHost.html" title="class in org.apache.hadoop.hbase.trace">SpanReceiverHost</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#spanReceiverHost">spanReceiverHost</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
@@ -105466,7 +105510,7 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#syncException">syncException</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#syncFailed-java.lang.Throwable-">syncFailed(Throwable)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#syncFailed-long-java.lang.Throwable-">syncFailed(long, Throwable)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">SyncFuture</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/wal/package-summary.html">org.apache.hadoop.hbase.regionserver.wal</a></dt>
 <dd>
@@ -115035,7 +115079,7 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/LockedResource.html#waitingProcedures">waitingProcedures</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/LockedResource.html" title="class in org.apache.hadoop.hbase.procedure2">LockedResource</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingRoll">waitingRoll</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingRoll-int-">waitingRoll(int)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/executor/EventHandler.html#waitingTimeForEvents">waitingTimeForEvents</a></span> - Variable in class org.apache.hadoop.hbase.executor.<a href="org/apache/hadoop/hbase/executor/EventHandler.html" title="class in org.apache.hadoop.hbase.executor">EventHandler</a></dt>
 <dd>&nbsp;</dd>
@@ -116896,7 +116940,7 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/util/StreamUtils.html#writeRawVInt32-java.io.OutputStream-int-">writeRawVInt32(OutputStream, int)</a></span> - Static method in class org.apache.hadoop.hbase.io.util.<a href="org/apache/hadoop/hbase/io/util/StreamUtils.html" title="class in org.apache.hadoop.hbase.io.util">StreamUtils</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#writerBroken">writerBroken</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#writerBroken-int-">writerBroken(int)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AsyncFSWAL</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.html#writerClsNames">writerClsNames</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.html" title="class in org.apache.hadoop.hbase.regionserver.wal">ProtobufLogReader</a></dt>
 <dd>&nbsp;</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/ClusterStatus.Builder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ClusterStatus.Builder.html b/devapidocs/org/apache/hadoop/hbase/ClusterStatus.Builder.html
index a3c8401..bf1805e 100644
--- a/devapidocs/org/apache/hadoop/hbase/ClusterStatus.Builder.html
+++ b/devapidocs/org/apache/hadoop/hbase/ClusterStatus.Builder.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public static class <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.397">ClusterStatus.Builder</a>
+public static class <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.400">ClusterStatus.Builder</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Builder for construct a ClusterStatus.</div>
 </li>
@@ -281,7 +281,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>hbaseVersion</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.398">hbaseVersion</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.401">hbaseVersion</a></pre>
 </li>
 </ul>
 <a name="liveServers">
@@ -290,7 +290,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>liveServers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../org/apache/hadoop/hbase/ServerLoad.html" title="class in org.apache.hadoop.hbase">ServerLoad</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.399">liveServers</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../org/apache/hadoop/hbase/ServerLoad.html" title="class in org.apache.hadoop.hbase">ServerLoad</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.402">liveServers</a></pre>
 </li>
 </ul>
 <a name="deadServers">
@@ -299,7 +299,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>deadServers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.400">deadServers</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.403">deadServers</a></pre>
 </li>
 </ul>
 <a name="master">
@@ -308,7 +308,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>master</h4>
-<pre>private&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.401">master</a></pre>
+<pre>private&nbsp;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.404">master</a></pre>
 </li>
 </ul>
 <a name="backupMasters">
@@ -317,7 +317,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>backupMasters</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.402">backupMasters</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.405">backupMasters</a></pre>
 </li>
 </ul>
 <a name="intransition">
@@ -326,7 +326,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>intransition</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.403">intransition</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.406">intransition</a></pre>
 </li>
 </ul>
 <a name="clusterId">
@@ -335,7 +335,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterId</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.404">clusterId</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.407">clusterId</a></pre>
 </li>
 </ul>
 <a name="masterCoprocessors">
@@ -344,7 +344,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>masterCoprocessors</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.405">masterCoprocessors</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.408">masterCoprocessors</a></pre>
 </li>
 </ul>
 <a name="balancerOn">
@@ -353,7 +353,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>balancerOn</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.406">balancerOn</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.409">balancerOn</a></pre>
 </li>
 </ul>
 <a name="masterInfoPort">
@@ -362,7 +362,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>masterInfoPort</h4>
-<pre>private&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.407">masterInfoPort</a></pre>
+<pre>private&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.410">masterInfoPort</a></pre>
 </li>
 </ul>
 </li>
@@ -379,7 +379,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Builder</h4>
-<pre>private&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.409">Builder</a>()</pre>
+<pre>private&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.412">Builder</a>()</pre>
 </li>
 </ul>
 </li>
@@ -396,7 +396,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setHBaseVersion</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.411">setHBaseVersion</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hbaseVersion)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.414">setHBaseVersion</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hbaseVersion)</pre>
 </li>
 </ul>
 <a name="setLiveServers-java.util.Map-">
@@ -405,7 +405,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setLiveServers</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.416">setLiveServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../org/apache/hadoop/hbase/ServerLoad.html" title="class in org.apache.hadoop.hbase">ServerLoad</a>&gt;&nbsp;liveServers)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.419">setLiveServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="../../../../org/apache/hadoop/hbase/ServerLoad.html" title="class in org.apache.hadoop.hbase">ServerLoad</a>&gt;&nbsp;liveServers)</pre>
 </li>
 </ul>
 <a name="setDeadServers-java.util.List-">
@@ -414,7 +414,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setDeadServers</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.421">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;deadServers)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.424">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;deadServers)</pre>
 </li>
 </ul>
 <a name="setMaster-org.apache.hadoop.hbase.ServerName-">
@@ -423,7 +423,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setMaster</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.426">setMaster</a>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;master)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.429">setMaster</a>(<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;master)</pre>
 </li>
 </ul>
 <a name="setBackupMasters-java.util.List-">
@@ -432,7 +432,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setBackupMasters</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.431">setBackupMasters</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;backupMasters)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.434">setBackupMasters</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;backupMasters)</pre>
 </li>
 </ul>
 <a name="setRegionState-java.util.List-">
@@ -441,7 +441,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setRegionState</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.436">setRegionState</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt;&nbsp;intransition)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.439">setRegionState</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt;&nbsp;intransition)</pre>
 </li>
 </ul>
 <a name="setClusterId-java.lang.String-">
@@ -450,7 +450,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterId</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.441">setClusterId</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;clusterId)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.444">setClusterId</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;clusterId)</pre>
 </li>
 </ul>
 <a name="setMasterCoprocessors-java.lang.String:A-">
@@ -459,7 +459,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setMasterCoprocessors</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.446">setMasterCoprocessors</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;masterCoprocessors)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.449">setMasterCoprocessors</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;masterCoprocessors)</pre>
 </li>
 </ul>
 <a name="setBalancerOn-java.lang.Boolean-">
@@ -468,7 +468,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setBalancerOn</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.451">setBalancerOn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;balancerOn)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.454">setBalancerOn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;balancerOn)</pre>
 </li>
 </ul>
 <a name="setMasterInfoPort-int-">
@@ -477,7 +477,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setMasterInfoPort</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.456">setMasterInfoPort</a>(int&nbsp;masterInfoPort)</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Builder.html" title="class in org.apache.hadoop.hbase">ClusterStatus.Builder</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.459">setMasterInfoPort</a>(int&nbsp;masterInfoPort)</pre>
 </li>
 </ul>
 <a name="build--">
@@ -486,7 +486,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>build</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.461">build</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.html" title="class in org.apache.hadoop.hbase">ClusterStatus</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Builder.html#line.464">build</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/ClusterStatus.Option.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ClusterStatus.Option.html b/devapidocs/org/apache/hadoop/hbase/ClusterStatus.Option.html
index 4dfff6b..a35841d 100644
--- a/devapidocs/org/apache/hadoop/hbase/ClusterStatus.Option.html
+++ b/devapidocs/org/apache/hadoop/hbase/ClusterStatus.Option.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static enum <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.471">ClusterStatus.Option</a>
+<pre>public static enum <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.html#line.474">ClusterStatus.Option</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a>&gt;</pre>
 <div class="block">Kinds of ClusterStatus</div>
 </li>
@@ -253,7 +253,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>HBASE_VERSION</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.472">HBASE_VERSION</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.475">HBASE_VERSION</a></pre>
 </li>
 </ul>
 <a name="CLUSTER_ID">
@@ -262,7 +262,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>CLUSTER_ID</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.473">CLUSTER_ID</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.476">CLUSTER_ID</a></pre>
 <div class="block">status about hbase version</div>
 </li>
 </ul>
@@ -272,7 +272,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>BALANCER_ON</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.474">BALANCER_ON</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.477">BALANCER_ON</a></pre>
 <div class="block">status about cluster id</div>
 </li>
 </ul>
@@ -282,7 +282,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>LIVE_SERVERS</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.475">LIVE_SERVERS</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.478">LIVE_SERVERS</a></pre>
 <div class="block">status about balancer is on or not</div>
 </li>
 </ul>
@@ -292,7 +292,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>DEAD_SERVERS</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.476">DEAD_SERVERS</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.479">DEAD_SERVERS</a></pre>
 <div class="block">status about live region servers</div>
 </li>
 </ul>
@@ -302,7 +302,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>MASTER</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.477">MASTER</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.480">MASTER</a></pre>
 <div class="block">status about dead region servers</div>
 </li>
 </ul>
@@ -312,7 +312,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>BACKUP_MASTERS</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.478">BACKUP_MASTERS</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.481">BACKUP_MASTERS</a></pre>
 <div class="block">status about master</div>
 </li>
 </ul>
@@ -322,7 +322,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>MASTER_COPROCESSORS</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.479">MASTER_COPROCESSORS</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.482">MASTER_COPROCESSORS</a></pre>
 <div class="block">status about backup masters</div>
 </li>
 </ul>
@@ -332,7 +332,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>REGIONS_IN_TRANSITION</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.480">REGIONS_IN_TRANSITION</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.483">REGIONS_IN_TRANSITION</a></pre>
 <div class="block">status about master coprocessors</div>
 </li>
 </ul>
@@ -342,7 +342,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MASTER_INFO_PORT</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.481">MASTER_INFO_PORT</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase">ClusterStatus.Option</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ClusterStatus.Option.html#line.484">MASTER_INFO_PORT</a></pre>
 <div class="block">status about regions in transition</div>
 </li>
 </ul>


[28/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironmentForCoreCoprocessors.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironmentForCoreCoprocessors.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironmentForCoreCoprocessors.html
index 9fa61e7..a074e6e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironmentForCoreCoprocessors.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/MasterCoprocessorHost.MasterEnvironmentForCoreCoprocessors.html
@@ -1409,267 +1409,291 @@
 <span class="sourceLineNo">1401</span>    });<a name="line.1401"></a>
 <span class="sourceLineNo">1402</span>  }<a name="line.1402"></a>
 <span class="sourceLineNo">1403</span><a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>  public void preAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1404"></a>
+<span class="sourceLineNo">1404</span>  public void preRemoveServers(final Set&lt;Address&gt; servers)<a name="line.1404"></a>
 <span class="sourceLineNo">1405</span>      throws IOException {<a name="line.1405"></a>
 <span class="sourceLineNo">1406</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1406"></a>
 <span class="sourceLineNo">1407</span>      @Override<a name="line.1407"></a>
 <span class="sourceLineNo">1408</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>        observer.preAddReplicationPeer(this, peerId, peerConfig);<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      }<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    });<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span>  }<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span><a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  public void postAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>      throws IOException {<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>      @Override<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        observer.postAddReplicationPeer(this, peerId, peerConfig);<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>      }<a name="line.1420"></a>
-<span class="sourceLineNo">1421</span>    });<a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  }<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span><a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>  public void preRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      @Override<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>        observer.preRemoveReplicationPeer(this, peerId);<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>      }<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>    });<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span>  }<a name="line.1431"></a>
-<span class="sourceLineNo">1432</span><a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public void postRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      @Override<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>        observer.postRemoveReplicationPeer(this, peerId);<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>      }<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    });<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>  }<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span><a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public void preEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>      @Override<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>        observer.preEnableReplicationPeer(this, peerId);<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      }<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    });<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  public void postEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>      @Override<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>        observer.postEnableReplicationPeer(this, peerId);<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>      }<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>    });<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span><a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>  public void preDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>      @Override<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>        observer.preDisableReplicationPeer(this, peerId);<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>      }<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    });<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  }<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span><a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  public void postDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>      @Override<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>        observer.postDisableReplicationPeer(this, peerId);<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>      }<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    });<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  }<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span><a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  public void preGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span>      @Override<a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>        observer.preGetReplicationPeerConfig(this, peerId);<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      }<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>    });<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  }<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span><a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>  public void postGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>      @Override<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>        observer.postGetReplicationPeerConfig(this, peerId);<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>      }<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    });<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>  }<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span><a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>  public void preUpdateReplicationPeerConfig(final String peerId,<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>      @Override<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>        observer.preUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>      }<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>    });<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>  }<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span><a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>  public void postUpdateReplicationPeerConfig(final String peerId,<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>      @Override<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>        observer.postUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>      }<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>    });<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>  }<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span><a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>  public void preListReplicationPeers(final String regex) throws IOException {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>      @Override<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>        observer.preListReplicationPeers(this, regex);<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      }<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    });<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  public void postListReplicationPeers(final String regex) throws IOException {<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>      @Override<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>        observer.postListReplicationPeers(this, regex);<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      }<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>    });<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
-<span class="sourceLineNo">1533</span><a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>  public void preRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>      LockType type, String description) throws IOException {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>      @Override<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>        observer.preRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      }<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    });<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  public void postRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      LockType type, String description) throws IOException {<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      @Override<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>        observer.postRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      }<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    });<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span><a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>  public void preLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>      @Override<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>        observer.preLockHeartbeat(this, proc.getTableName(), proc.getDescription());<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      }<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>    });<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>  }<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span><a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>  public void postLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      @Override<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>        observer.postLockHeartbeat(this);<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      }<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    });<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>  }<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span><a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>  public void preGetClusterStatus() throws IOException {<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>      @Override<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        observer.preGetClusterStatus(this);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>      }<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>    });<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>  }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>  public void postGetClusterStatus(ClusterStatus status) throws IOException {<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      @Override<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>        observer.postGetClusterStatus(this, status);<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      }<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>    });<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>  }<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span><a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>  public void preClearDeadServers() throws IOException {<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>      @Override<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>        observer.preClearDeadServers(this);<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>      }<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    });<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>  }<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span><a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>  public void postClearDeadServers(List&lt;ServerName&gt; servers,<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>      List&lt;ServerName&gt; notClearedServers) throws IOException {<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>      @Override<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>        observer.postClearDeadServers(this, servers, notClearedServers);<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      }<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>    });<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>  }<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span><a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>  public void preDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>      @Override<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>        observer.preDecommissionRegionServers(this, servers, offload);<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>      }<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    });<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>  }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span><a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>  public void postDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>      @Override<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>        observer.postDecommissionRegionServers(this, servers, offload);<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>      }<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>    });<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>  }<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span><a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>  public void preListDecommissionedRegionServers() throws IOException {<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>      @Override<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>        observer.preListDecommissionedRegionServers(this);<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      }<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    });<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>  }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span><a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>  public void postListDecommissionedRegionServers() throws IOException {<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>      @Override<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>        observer.postListDecommissionedRegionServers(this);<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      }<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>    });<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>  }<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span><a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>  public void preRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>      throws IOException {<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>      @Override<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        observer.preRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      }<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>    });<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>  }<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span><a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>  public void postRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>      throws IOException {<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>      @Override<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>        observer.postRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>      }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>    });<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>  }<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>}<a name="line.1664"></a>
+<span class="sourceLineNo">1409</span>        if(((MasterEnvironment)getEnvironment()).supportGroupCPs) {<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>          observer.preRemoveServers(this, servers);<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>        }<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      }<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>    });<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span><a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>  public void postRemoveServers(final Set&lt;Address&gt; servers)<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      throws IOException {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      @Override<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>        if(((MasterEnvironment)getEnvironment()).supportGroupCPs) {<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span>          observer.postRemoveServers(this, servers);<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>        }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>      }<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>    });<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>  }<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span><a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>  public void preAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>      throws IOException {<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>      @Override<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>        observer.preAddReplicationPeer(this, peerId, peerConfig);<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>      }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span>    });<a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  }<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span><a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>  public void postAddReplicationPeer(final String peerId, final ReplicationPeerConfig peerConfig)<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>      throws IOException {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>      @Override<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>        observer.postAddReplicationPeer(this, peerId, peerConfig);<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      }<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>    });<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>  }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span><a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  public void preRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>      @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>        observer.preRemoveReplicationPeer(this, peerId);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>      }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>    });<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span><a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>  public void postRemoveReplicationPeer(final String peerId) throws IOException {<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>      @Override<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>        observer.postRemoveReplicationPeer(this, peerId);<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>      }<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>    });<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>  }<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span><a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>  public void preEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>      @Override<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>        observer.preEnableReplicationPeer(this, peerId);<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>      }<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>    });<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>  }<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span><a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>  public void postEnableReplicationPeer(final String peerId) throws IOException {<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>      @Override<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>        observer.postEnableReplicationPeer(this, peerId);<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>      }<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>    });<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  }<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span><a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>  public void preDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>      @Override<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>        observer.preDisableReplicationPeer(this, peerId);<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>      }<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>    });<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  }<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span><a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public void postDisableReplicationPeer(final String peerId) throws IOException {<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>      @Override<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>        observer.postDisableReplicationPeer(this, peerId);<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>      }<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span>    });<a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  }<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span><a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>  public void preGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>      @Override<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>        observer.preGetReplicationPeerConfig(this, peerId);<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>      }<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>    });<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>  }<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span><a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>  public void postGetReplicationPeerConfig(final String peerId) throws IOException {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>      @Override<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>        observer.postGetReplicationPeerConfig(this, peerId);<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>      }<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>    });<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>  }<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span><a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>  public void preUpdateReplicationPeerConfig(final String peerId,<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>      @Override<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>        observer.preUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      }<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>    });<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>  }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span><a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>  public void postUpdateReplicationPeerConfig(final String peerId,<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>      final ReplicationPeerConfig peerConfig) throws IOException {<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span>      @Override<a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>        observer.postUpdateReplicationPeerConfig(this, peerId, peerConfig);<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>      }<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>    });<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  }<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span><a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  public void preListReplicationPeers(final String regex) throws IOException {<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>      @Override<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>        observer.preListReplicationPeers(this, regex);<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>      }<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>    });<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  }<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span><a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>  public void postListReplicationPeers(final String regex) throws IOException {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>      @Override<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span>        observer.postListReplicationPeers(this, regex);<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      }<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>    });<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>  }<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span><a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>  public void preRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      LockType type, String description) throws IOException {<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>      @Override<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>        observer.preRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      }<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    });<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>  }<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span><a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>  public void postRequestLock(String namespace, TableName tableName, RegionInfo[] regionInfos,<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      LockType type, String description) throws IOException {<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      @Override<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>        observer.postRequestLock(this, namespace, tableName, regionInfos, description);<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      }<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    });<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>  }<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span><a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>  public void preLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      @Override<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>        observer.preLockHeartbeat(this, proc.getTableName(), proc.getDescription());<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>      }<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>    });<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>  }<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span><a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>  public void postLockHeartbeat(LockProcedure proc, boolean keepAlive) throws IOException {<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>      @Override<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        observer.postLockHeartbeat(this);<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      }<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>    });<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>  }<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span><a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>  public void preGetClusterStatus() throws IOException {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>      @Override<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>        observer.preGetClusterStatus(this);<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>      }<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>    });<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>  }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span><a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>  public void postGetClusterStatus(ClusterStatus status) throws IOException {<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      @Override<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        observer.postGetClusterStatus(this, status);<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>      }<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>    });<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>  }<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span><a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>  public void preClearDeadServers() throws IOException {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>      @Override<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        observer.preClearDeadServers(this);<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>      }<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    });<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>  }<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span><a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>  public void postClearDeadServers(List&lt;ServerName&gt; servers,<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>      List&lt;ServerName&gt; notClearedServers) throws IOException {<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>      @Override<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>        observer.postClearDeadServers(this, servers, notClearedServers);<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>      }<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>    });<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>  }<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span><a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>  public void preDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      @Override<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>        observer.preDecommissionRegionServers(this, servers, offload);<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>      }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>    });<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>  }<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span><a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>  public void postDecommissionRegionServers(List&lt;ServerName&gt; servers, boolean offload) throws IOException {<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>      @Override<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>        observer.postDecommissionRegionServers(this, servers, offload);<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>      }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>    });<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>  }<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span><a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>  public void preListDecommissionedRegionServers() throws IOException {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>      @Override<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>        observer.preListDecommissionedRegionServers(this);<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>      }<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>    });<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>  }<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span><a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>  public void postListDecommissionedRegionServers() throws IOException {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>      @Override<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>        observer.postListDecommissionedRegionServers(this);<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>      }<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    });<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>  }<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span><a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>  public void preRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>      throws IOException {<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>      @Override<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>        observer.preRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>      }<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    });<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span><a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>  public void postRecommissionRegionServer(ServerName server, List&lt;byte[]&gt; encodedRegionNames)<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>      throws IOException {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>    execOperation(coprocEnvironments.isEmpty() ? null : new MasterObserverOperation() {<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>      @Override<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>      public void call(MasterObserver observer) throws IOException {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>        observer.postRecommissionRegionServer(this, server, encodedRegionNames);<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>      }<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    });<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>  }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>}<a name="line.1688"></a>
 
 
 


[39/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
index a3c2c42..bed230a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html
@@ -18,8 +18,8 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":9,"i22":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -119,7 +119,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.LimitedPrivate(value="Configuration")
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.130">AsyncFSWAL</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.132">AsyncFSWAL</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&gt;</pre>
 <div class="block">An asynchronous implementation of FSWAL.
  <p>
@@ -134,7 +134,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
  </li>
  </ol>
  </li>
- <li>In the consumer task(in the EventLoop thread)
+ <li>In the consumer task(executed in a single threaded thread pool)
  <ol>
  <li>Poll the entry from <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingConsumePayloads"><code>waitingConsumePayloads</code></a> and insert it into
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#toWriteAppends"><code>toWriteAppends</code></a></li>
@@ -159,25 +159,23 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
  FSHLog.<br>
  For a normal roll request(for example, we have reached the log roll size):
  <ol>
- <li>In the log roller thread, we will set <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingRoll"><code>waitingRoll</code></a> to true and
+ <li>In the log roller thread, we will set <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingRoll-int-"><code>waitingRoll(int)</code></a> to true and
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#readyForRolling"><code>readyForRolling</code></a> to false, and then wait on <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#readyForRolling"><code>readyForRolling</code></a>(see
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitForSafePoint--"><code>waitForSafePoint()</code></a>).</li>
  <li>In the consumer thread, we will stop polling entries from <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingConsumePayloads"><code>waitingConsumePayloads</code></a> if
- <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingRoll"><code>waitingRoll</code></a> is true, and also stop writing the entries in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#toWriteAppends"><code>toWriteAppends</code></a> out.
+ <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingRoll-int-"><code>waitingRoll(int)</code></a> is true, and also stop writing the entries in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#toWriteAppends"><code>toWriteAppends</code></a> out.
  </li>
  <li>If there are unflush data in the writer, sync them.</li>
  <li>When all out-going sync request is finished, i.e, the <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#unackedAppends"><code>unackedAppends</code></a> is empty,
  signal the <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#readyForRollingCond"><code>readyForRollingCond</code></a>.</li>
  <li>Back to the log roller thread, now we can confirm that there are no out-going entries, i.e.,
  we reach a safe point. So it is safe to replace old writer with new writer now.</li>
- <li>Set <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#writerBroken"><code>writerBroken</code></a> and <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingRoll"><code>waitingRoll</code></a> to false, cancel log roller exit checker
- if any(see the comments in the <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#syncFailed-java.lang.Throwable-"><code>syncFailed(Throwable)</code></a> method to see why we need a checker
- here).</li>
+ <li>Set <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#writerBroken-int-"><code>writerBroken(int)</code></a> and <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingRoll-int-"><code>waitingRoll(int)</code></a> to false.</li>
  <li>Schedule the consumer task.</li>
  <li>Schedule a background task to close the old writer.</li>
  </ol>
  For a broken writer roll request, the only difference is that we can bypass the wait for safe
- point stage. See the comments in the <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#syncFailed-java.lang.Throwable-"><code>syncFailed(Throwable)</code></a> method for more details.</div>
+ point stage.</div>
 </li>
 </ul>
 </div>
@@ -216,17 +214,25 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#ASYNC_WAL_CREATE_MAX_RETRIES">ASYNC_WAL_CREATE_MAX_RETRIES</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#ASYNC_WAL_USE_SHARED_EVENT_LOOP">ASYNC_WAL_USE_SHARED_EVENT_LOOP</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#batchSize">batchSize</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#channelClass">channelClass</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#closeExecutor">closeExecutor</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#consumeExecutor">consumeExecutor</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#consumeLock">consumeLock</a></span></code>&nbsp;</td>
@@ -248,12 +254,20 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES">DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP">DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#DEFAULT_WAL_BATCH_SIZE">DEFAULT_WAL_BATCH_SIZE</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#epochAndState">epochAndState</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
-<td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#eventLoop">eventLoop</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#eventLoopGroup">eventLoopGroup</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private long</code></td>
@@ -280,13 +294,21 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#MAX_EPOCH">MAX_EPOCH</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#readyForRolling">readyForRolling</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html?is-external=true" title="class or interface in java.util.concurrent.locks">Condition</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#readyForRollingCond">readyForRollingCond</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#rollRequested">rollRequested</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#SEQ_COMPARATOR">SEQ_COMPARATOR</a></span></code>&nbsp;</td>
@@ -312,17 +334,9 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingConsumePayloadsGatingSequence">waitingConsumePayloadsGatingSequence</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingRoll">waitingRoll</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#WAL_BATCH_SIZE">WAL_BATCH_SIZE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#writerBroken">writerBroken</a></span></code>&nbsp;</td>
-</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL">
@@ -345,7 +359,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#AsyncFSWAL-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">AsyncFSWAL</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#AsyncFSWAL-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">AsyncFSWAL</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
           org.apache.hadoop.fs.Path&nbsp;rootDir,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logDir,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;archiveDir,
@@ -354,7 +368,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
           boolean&nbsp;failIfWALExists,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;suffix,
-          org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+          org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>&nbsp;</td>
 </tr>
 </table>
@@ -367,7 +381,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
@@ -415,64 +429,77 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#doShutdown--">doShutdown</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i8" class="altColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#epoch-int-">epoch</a></span>(int&nbsp;epochAndState)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#finishSync-boolean-">finishSync</a></span>(boolean&nbsp;addSyncTrace)</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#finishSyncLowerThanTxid-long-boolean-">finishSyncLowerThanTxid</a></span>(long&nbsp;txid,
                        boolean&nbsp;addSyncTrace)</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#getLogReplication--">getLogReplication</a></span>()</code>
 <div class="block">This method gets the datanode replication count for the current WAL.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hdfs.protocol.DatanodeInfo[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#getPipeline--">getPipeline</a></span>()</code>
 <div class="block">This method gets the pipeline for the current WAL.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#shouldScheduleConsumer--">shouldScheduleConsumer</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#sync--">sync</a></span>()</code>
 <div class="block">Sync what we have in the WAL.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#sync-long-">sync</a></span>(long&nbsp;txid)</code>
 <div class="block">Sync the WAL if the txId was not already sync'd.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#sync-org.apache.hadoop.hbase.wal.WALProvider.AsyncWriter-">sync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;writer)</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#syncCompleted-org.apache.hadoop.hbase.wal.WALProvider.AsyncWriter-long-long-">syncCompleted</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;writer,
              long&nbsp;processedTxid,
              long&nbsp;startTimeNs)</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#syncFailed-java.lang.Throwable-">syncFailed</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#syncFailed-long-java.lang.Throwable-">syncFailed</a></span>(long&nbsp;epochWhenSync,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#trySetReadyForRolling--">trySetReadyForRolling</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitForSafePoint--">waitForSafePoint</a></span>()</code>&nbsp;</td>
 </tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>private static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#waitingRoll-int-">waitingRoll</a></span>(int&nbsp;epochAndState)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code>private static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#writerBroken-int-">writerBroken</a></span>(int&nbsp;epochAndState)</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL">
@@ -508,7 +535,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.132">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.134">LOG</a></pre>
 </li>
 </ul>
 <a name="SEQ_COMPARATOR">
@@ -517,7 +544,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>SEQ_COMPARATOR</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.134">SEQ_COMPARATOR</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.136">SEQ_COMPARATOR</a></pre>
 </li>
 </ul>
 <a name="WAL_BATCH_SIZE">
@@ -526,7 +553,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>WAL_BATCH_SIZE</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.139">WAL_BATCH_SIZE</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.141">WAL_BATCH_SIZE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.WAL_BATCH_SIZE">Constant Field Values</a></dd>
@@ -539,7 +566,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_WAL_BATCH_SIZE</h4>
-<pre>public static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.140">DEFAULT_WAL_BATCH_SIZE</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.142">DEFAULT_WAL_BATCH_SIZE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.DEFAULT_WAL_BATCH_SIZE">Constant Field Values</a></dd>
@@ -552,7 +579,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>ASYNC_WAL_CREATE_MAX_RETRIES</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.142">ASYNC_WAL_CREATE_MAX_RETRIES</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.144">ASYNC_WAL_CREATE_MAX_RETRIES</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.ASYNC_WAL_CREATE_MAX_RETRIES">Constant Field Values</a></dd>
@@ -565,20 +592,55 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES</h4>
-<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.143">DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.145">DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.DEFAULT_ASYNC_WAL_CREATE_MAX_RETRIES">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
-<a name="eventLoop">
+<a name="ASYNC_WAL_USE_SHARED_EVENT_LOOP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ASYNC_WAL_USE_SHARED_EVENT_LOOP</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.147">ASYNC_WAL_USE_SHARED_EVENT_LOOP</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.ASYNC_WAL_USE_SHARED_EVENT_LOOP">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP</h4>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.149">DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.DEFAULT_ASYNC_WAL_USE_SHARED_EVENT_LOOP">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="eventLoopGroup">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>eventLoopGroup</h4>
+<pre>private final&nbsp;org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.151">eventLoopGroup</a></pre>
+</li>
+</ul>
+<a name="consumeExecutor">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>eventLoop</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.145">eventLoop</a></pre>
+<h4>consumeExecutor</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.153">consumeExecutor</a></pre>
 </li>
 </ul>
 <a name="channelClass">
@@ -587,7 +649,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>channelClass</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.147">channelClass</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.155">channelClass</a></pre>
 </li>
 </ul>
 <a name="consumeLock">
@@ -596,7 +658,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>consumeLock</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.149">consumeLock</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.157">consumeLock</a></pre>
 </li>
 </ul>
 <a name="consumer">
@@ -605,7 +667,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>consumer</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.151">consumer</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.159">consumer</a></pre>
 </li>
 </ul>
 <a name="hasConsumerTask">
@@ -614,16 +676,38 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>hasConsumerTask</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.154">hasConsumerTask</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.162">hasConsumerTask</a></pre>
 </li>
 </ul>
-<a name="waitingRoll">
+<a name="MAX_EPOCH">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>waitingRoll</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.157">waitingRoll</a></pre>
+<h4>MAX_EPOCH</h4>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.164">MAX_EPOCH</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.MAX_EPOCH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="epochAndState">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>epochAndState</h4>
+<pre>private volatile&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.172">epochAndState</a></pre>
+</li>
+</ul>
+<a name="rollRequested">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rollRequested</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.175">rollRequested</a></pre>
 </li>
 </ul>
 <a name="readyForRolling">
@@ -632,7 +716,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>readyForRolling</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.159">readyForRolling</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.177">readyForRolling</a></pre>
 </li>
 </ul>
 <a name="readyForRollingCond">
@@ -641,7 +725,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>readyForRollingCond</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html?is-external=true" title="class or interface in java.util.concurrent.locks">Condition</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.161">readyForRollingCond</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html?is-external=true" title="class or interface in java.util.concurrent.locks">Condition</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.179">readyForRollingCond</a></pre>
 </li>
 </ul>
 <a name="waitingConsumePayloads">
@@ -650,7 +734,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>waitingConsumePayloads</h4>
-<pre>private final&nbsp;com.lmax.disruptor.RingBuffer&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html" title="class in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.163">waitingConsumePayloads</a></pre>
+<pre>private final&nbsp;com.lmax.disruptor.RingBuffer&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html" title="class in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.181">waitingConsumePayloads</a></pre>
 </li>
 </ul>
 <a name="waitingConsumePayloadsGatingSequence">
@@ -659,7 +743,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>waitingConsumePayloadsGatingSequence</h4>
-<pre>private final&nbsp;com.lmax.disruptor.Sequence <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.165">waitingConsumePayloadsGatingSequence</a></pre>
+<pre>private final&nbsp;com.lmax.disruptor.Sequence <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.183">waitingConsumePayloadsGatingSequence</a></pre>
 </li>
 </ul>
 <a name="consumerScheduled">
@@ -668,16 +752,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>consumerScheduled</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.167">consumerScheduled</a></pre>
-</li>
-</ul>
-<a name="writerBroken">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>writerBroken</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.170">writerBroken</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.185">consumerScheduled</a></pre>
 </li>
 </ul>
 <a name="batchSize">
@@ -686,7 +761,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>batchSize</h4>
-<pre>private final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.172">batchSize</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.187">batchSize</a></pre>
 </li>
 </ul>
 <a name="createMaxRetries">
@@ -695,7 +770,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createMaxRetries</h4>
-<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.174">createMaxRetries</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.189">createMaxRetries</a></pre>
 </li>
 </ul>
 <a name="closeExecutor">
@@ -704,7 +779,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>closeExecutor</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.176">closeExecutor</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.191">closeExecutor</a></pre>
 </li>
 </ul>
 <a name="fsOut">
@@ -713,7 +788,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>fsOut</h4>
-<pre>private volatile&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">AsyncFSOutput</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.179">fsOut</a></pre>
+<pre>private volatile&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">AsyncFSOutput</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.194">fsOut</a></pre>
 </li>
 </ul>
 <a name="toWriteAppends">
@@ -722,7 +797,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>toWriteAppends</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.181">toWriteAppends</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.196">toWriteAppends</a></pre>
 </li>
 </ul>
 <a name="unackedAppends">
@@ -731,7 +806,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>unackedAppends</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.183">unackedAppends</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html?is-external=true" title="class or interface in java.util">Deque</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.198">unackedAppends</a></pre>
 </li>
 </ul>
 <a name="syncFutures">
@@ -740,7 +815,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>syncFutures</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.185">syncFutures</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.200">syncFutures</a></pre>
 </li>
 </ul>
 <a name="highestProcessedAppendTxid">
@@ -749,7 +824,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>highestProcessedAppendTxid</h4>
-<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.188">highestProcessedAppendTxid</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.203">highestProcessedAppendTxid</a></pre>
 </li>
 </ul>
 <a name="fileLengthAtLastSync">
@@ -758,7 +833,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>fileLengthAtLastSync</h4>
-<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.191">fileLengthAtLastSync</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.206">fileLengthAtLastSync</a></pre>
 </li>
 </ul>
 <a name="highestProcessedAppendTxidAtLastSync">
@@ -767,7 +842,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>highestProcessedAppendTxidAtLastSync</h4>
-<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.193">highestProcessedAppendTxidAtLastSync</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.208">highestProcessedAppendTxidAtLastSync</a></pre>
 </li>
 </ul>
 </li>
@@ -778,13 +853,13 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="AsyncFSWAL-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">
+<a name="AsyncFSWAL-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncFSWAL</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.195">AsyncFSWAL</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.210">AsyncFSWAL</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                   org.apache.hadoop.fs.Path&nbsp;rootDir,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logDir,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;archiveDir,
@@ -793,7 +868,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
                   boolean&nbsp;failIfWALExists,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;suffix,
-                  org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+                  org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)
            throws <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FailedLogCloseException.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FailedLogCloseException</a>,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -812,22 +887,50 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="waitingRoll-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitingRoll</h4>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.260">waitingRoll</a>(int&nbsp;epochAndState)</pre>
+</li>
+</ul>
+<a name="writerBroken-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>writerBroken</h4>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.264">writerBroken</a>(int&nbsp;epochAndState)</pre>
+</li>
+</ul>
+<a name="epoch-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>epoch</h4>
+<pre>private static&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.268">epoch</a>(int&nbsp;epochAndState)</pre>
+</li>
+</ul>
 <a name="trySetReadyForRolling--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>trySetReadyForRolling</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.237">trySetReadyForRolling</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.273">trySetReadyForRolling</a>()</pre>
 </li>
 </ul>
-<a name="syncFailed-java.lang.Throwable-">
+<a name="syncFailed-long-java.lang.Throwable-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>syncFailed</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.260">syncFailed</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.296">syncFailed</a>(long&nbsp;epochWhenSync,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
 </li>
 </ul>
 <a name="syncCompleted-org.apache.hadoop.hbase.wal.WALProvider.AsyncWriter-long-long-">
@@ -836,7 +939,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>syncCompleted</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.292">syncCompleted</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;writer,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.329">syncCompleted</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;writer,
                            long&nbsp;processedTxid,
                            long&nbsp;startTimeNs)</pre>
 </li>
@@ -847,7 +950,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>sync</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.328">sync</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;writer)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.351">sync</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;writer)</pre>
 </li>
 </ul>
 <a name="addTimeAnnotation-org.apache.hadoop.hbase.regionserver.wal.SyncFuture-java.lang.String-">
@@ -856,7 +959,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>addTimeAnnotation</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.342">addTimeAnnotation</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;future,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.366">addTimeAnnotation</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;future,
                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;annotation)</pre>
 </li>
 </ul>
@@ -866,7 +969,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>finishSyncLowerThanTxid</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.348">finishSyncLowerThanTxid</a>(long&nbsp;txid,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.372">finishSyncLowerThanTxid</a>(long&nbsp;txid,
                                     boolean&nbsp;addSyncTrace)</pre>
 </li>
 </ul>
@@ -876,7 +979,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>finishSync</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.367">finishSync</a>(boolean&nbsp;addSyncTrace)</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.391">finishSync</a>(boolean&nbsp;addSyncTrace)</pre>
 </li>
 </ul>
 <a name="appendAndSync--">
@@ -885,7 +988,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>appendAndSync</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.404">appendAndSync</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.428">appendAndSync</a>()</pre>
 </li>
 </ul>
 <a name="consume--">
@@ -894,7 +997,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>consume</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.472">consume</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.480">consume</a>()</pre>
 </li>
 </ul>
 <a name="shouldScheduleConsumer--">
@@ -903,7 +1006,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldScheduleConsumer</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.546">shouldScheduleConsumer</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.555">shouldScheduleConsumer</a>()</pre>
 </li>
 </ul>
 <a name="append-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALKey-org.apache.hadoop.hbase.wal.WALEdit-boolean-">
@@ -912,7 +1015,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.554">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.564">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
                    <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKey.html" title="class in org.apache.hadoop.hbase.wal">WALKey</a>&nbsp;key,
                    <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edits,
                    boolean&nbsp;inMemstore)
@@ -955,7 +1058,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>sync</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.565">sync</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.575">sync</a>()
           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#sync--">WAL</a></code></span></div>
 <div class="block">Sync what we have in the WAL.</div>
@@ -971,7 +1074,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>sync</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.584">sync</a>(long&nbsp;txid)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.594">sync</a>(long&nbsp;txid)
           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#sync-long-">WAL</a></code></span></div>
 <div class="block">Sync the WAL if the txId was not already sync'd.</div>
@@ -989,7 +1092,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createWriterInstance</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.607">createWriterInstance</a>(org.apache.hadoop.fs.Path&nbsp;path)
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.617">createWriterInstance</a>(org.apache.hadoop.fs.Path&nbsp;path)
                                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1005,7 +1108,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForSafePoint</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.650">waitForSafePoint</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.660">waitForSafePoint</a>()</pre>
 </li>
 </ul>
 <a name="doReplaceWriter-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.wal.WALProvider.AsyncWriter-">
@@ -1014,7 +1117,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>doReplaceWriter</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.669">doReplaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.680">doReplaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                org.apache.hadoop.fs.Path&nbsp;newPath,
                                <a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;nextWriter)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1034,7 +1137,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>doShutdown</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.704">doShutdown</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.719">doShutdown</a>()
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1050,7 +1153,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>doAppend</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.716">doAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;writer,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.734">doAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.AsyncWriter</a>&nbsp;writer,
                         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1064,7 +1167,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getPipeline</h4>
-<pre>org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.721">getPipeline</a>()</pre>
+<pre>org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.739">getPipeline</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getPipeline--">AbstractFSWAL</a></code></span></div>
 <div class="block">This method gets the pipeline for the current WAL.</div>
 <dl>
@@ -1079,7 +1182,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getLogReplication</h4>
-<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.727">getLogReplication</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.html#line.745">getLogReplication</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getLogReplication--">AbstractFSWAL</a></code></span></div>
 <div class="block">This method gets the datanode replication count for the current WAL.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html
index d736423..adb1af8 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.63">AsyncProtobufLogWriter.OutputStreamWrapper</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.62">AsyncProtobufLogWriter.OutputStreamWrapper</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>
 implements <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBufferWriter.html" title="interface in org.apache.hadoop.hbase.io">ByteBufferWriter</a></pre>
 </li>
@@ -246,7 +246,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBufferWrite
 <ul class="blockList">
 <li class="blockList">
 <h4>out</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">AsyncFSOutput</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.66">out</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">AsyncFSOutput</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.65">out</a></pre>
 </li>
 </ul>
 <a name="oneByteBuf">
@@ -255,7 +255,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBufferWrite
 <ul class="blockListLast">
 <li class="blockList">
 <h4>oneByteBuf</h4>
-<pre>private final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.68">oneByteBuf</a></pre>
+<pre>private final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.67">oneByteBuf</a></pre>
 </li>
 </ul>
 </li>
@@ -272,7 +272,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBufferWrite
 <ul class="blockListLast">
 <li class="blockList">
 <h4>OutputStreamWrapper</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.76">OutputStreamWrapper</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">AsyncFSOutput</a>&nbsp;out)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.75">OutputStreamWrapper</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">AsyncFSOutput</a>&nbsp;out)</pre>
 </li>
 </ul>
 </li>
@@ -289,7 +289,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBufferWrite
 <ul class="blockList">
 <li class="blockList">
 <h4>write</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.71">write</a>(int&nbsp;b)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.70">write</a>(int&nbsp;b)
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -305,7 +305,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBufferWrite
 <ul class="blockList">
 <li class="blockList">
 <h4>write</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.81">write</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;b,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.80">write</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;b,
                   int&nbsp;off,
                   int&nbsp;len)
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -329,7 +329,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBufferWrite
 <ul class="blockList">
 <li class="blockList">
 <h4>writeInt</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.89">writeInt</a>(int&nbsp;i)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.88">writeInt</a>(int&nbsp;i)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/io/ByteBufferWriter.html#writeInt-int-">ByteBufferWriter</a></code></span></div>
 <div class="block">Writes an <code>int</code> to the underlying output stream as four bytes, high byte first.</div>
@@ -349,7 +349,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBufferWrite
 <ul class="blockList">
 <li class="blockList">
 <h4>write</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.94">write</a>(byte[]&nbsp;b,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.93">write</a>(byte[]&nbsp;b,
                   int&nbsp;off,
                   int&nbsp;len)
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -367,7 +367,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/io/ByteBufferWrite
 <ul class="blockListLast">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.99">close</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.OutputStreamWrapper.html#line.98">close</a>()
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
index 9637583..1a8bc32 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.52">AsyncProtobufLogWriter</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.51">AsyncProtobufLogWriter</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractProtobufLogWriter</a>
 implements <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProvider.AsyncWriter.html" title="interface in org.apache.hadoop.hbase.wal">AsyncFSWALProvider.AsyncWriter</a></pre>
 <div class="block">AsyncWriter for protobuf-based WAL.</div>
@@ -173,8 +173,8 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProv
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#channelClass">channelClass</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#eventLoop">eventLoop</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#eventLoopGroup">eventLoopGroup</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private static org.apache.commons.logging.Log</code></td>
@@ -206,7 +206,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProv
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#AsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">AsyncProtobufLogWriter</a></span>(org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#AsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">AsyncProtobufLogWriter</a></span>(org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)</code>&nbsp;</td>
 </tr>
 </table>
@@ -318,16 +318,16 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProv
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.55">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.54">LOG</a></pre>
 </li>
 </ul>
-<a name="eventLoop">
+<a name="eventLoopGroup">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>eventLoop</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.57">eventLoop</a></pre>
+<h4>eventLoopGroup</h4>
+<pre>private final&nbsp;org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.56">eventLoopGroup</a></pre>
 </li>
 </ul>
 <a name="channelClass">
@@ -336,7 +336,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProv
 <ul class="blockList">
 <li class="blockList">
 <h4>channelClass</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.59">channelClass</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.58">channelClass</a></pre>
 </li>
 </ul>
 <a name="output">
@@ -345,7 +345,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProv
 <ul class="blockList">
 <li class="blockList">
 <h4>output</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">AsyncFSOutput</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.61">output</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/asyncfs/AsyncFSOutput.html" title="interface in org.apache.hadoop.hbase.io.asyncfs">AsyncFSOutput</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.60">output</a></pre>
 </li>
 </ul>
 <a name="asyncOutputWrapper">
@@ -354,7 +354,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProv
 <ul class="blockListLast">
 <li class="blockList">
 <h4>asyncOutputWrapper</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.104">asyncOutputWrapper</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.103">asyncOutputWrapper</a></pre>
 </li>
 </ul>
 </li>
@@ -365,13 +365,13 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/AsyncFSWALProv
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="AsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop-java.lang.Class-">
+<a name="AsyncProtobufLogWriter-org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup-java.lang.Class-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AsyncProtobufLogWriter</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.106">AsyncProtobufLogWriter</a>(org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoop&nbsp;eventLoop,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.html#line.105">AsyncProtobufLogWriter</a>(org.apache.hadoop.hbase.shaded.io.netty.channel.EventLoopGroup&nbsp;eventLoopGroup,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.hadoop.hbase.shaded.io.netty.channel.Channel&gt;&nbsp;channelClass)</pre>
 </li>
 </ul>


[15/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
index 775301c..0c071a7 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
@@ -317,602 +317,628 @@
 <span class="sourceLineNo">309</span>    flushConfig(newGroupMap);<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.315"></a>
-<span class="sourceLineNo">316</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    return rsGroupInfoList;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    //Overwrite any info stored by table, this takes precedence<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    try {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>          byte[] data = ZKUtil.getData(watcher, ZNodePaths.joinZNode(groupBasePath, znode));<a name="line.329"></a>
-<span class="sourceLineNo">330</span>          if(data.length &gt; 0) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.332"></a>
-<span class="sourceLineNo">333</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.334"></a>
-<span class="sourceLineNo">335</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.335"></a>
-<span class="sourceLineNo">336</span>          }<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        }<a name="line.337"></a>
-<span class="sourceLineNo">338</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    }<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    return RSGroupInfoList;<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  @Override<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  public void refresh() throws IOException {<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    refresh(false);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  /**<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   * Update zk cache. Called on startup of the manager.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>   */<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    // if online read from GROUP table<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    if (forceOnline || isOnline()) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      LOG.debug("Refreshing in Online mode.");<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      if (rsGroupTable == null) {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    } else {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
-<span class="sourceLineNo">371</span>    // refresh default group, prune<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">312</span>  @Override<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public synchronized void removeServers(Set&lt;Address&gt; servers) throws IOException {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    Map&lt;String, RSGroupInfo&gt; rsGroupInfos = new HashMap&lt;String, RSGroupInfo&gt;();<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    for (Address el: servers) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      RSGroupInfo rsGroupInfo = getRSGroupOfServer(el);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      if (rsGroupInfo != null) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        RSGroupInfo newRsGroupInfo = rsGroupInfos.get(rsGroupInfo.getName());<a name="line.318"></a>
+<span class="sourceLineNo">319</span>        if (newRsGroupInfo == null) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>          rsGroupInfo.removeServer(el);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>          rsGroupInfos.put(rsGroupInfo.getName(), rsGroupInfo);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        } else {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>          newRsGroupInfo.removeServer(el);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>          rsGroupInfos.put(newRsGroupInfo.getName(), newRsGroupInfo);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>        }<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      }else {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        LOG.warn("Server " + el + " does not belong to any rsgroup.");<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      }<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>    if (rsGroupInfos.size() &gt; 0) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      Map&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      newGroupMap.putAll(rsGroupInfos);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      flushConfig(newGroupMap);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromGroupTable() throws IOException {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    List&lt;RSGroupInfo&gt; rsGroupInfoList = Lists.newArrayList();<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    for (Result result : rsGroupTable.getScanner(new Scan())) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtos.RSGroupInfo.parseFrom(<a name="line.341"></a>
+<span class="sourceLineNo">342</span>              result.getValue(META_FAMILY_BYTES, META_QUALIFIER_BYTES));<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      rsGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(proto));<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    }<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    return rsGroupInfoList;<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  }<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>  List&lt;RSGroupInfo&gt; retrieveGroupListFromZookeeper() throws IOException {<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    List&lt;RSGroupInfo&gt; RSGroupInfoList = Lists.newArrayList();<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    //Overwrite any info stored by table, this takes precedence<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    try {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      if(ZKUtil.checkExists(watcher, groupBasePath) != -1) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        for(String znode: ZKUtil.listChildrenAndWatchForNewChildren(watcher, groupBasePath)) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          byte[] data = ZKUtil.getData(watcher, ZNodePaths.joinZNode(groupBasePath, znode));<a name="line.355"></a>
+<span class="sourceLineNo">356</span>          if(data.length &gt; 0) {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>            ProtobufUtil.expectPBMagicPrefix(data);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>            ByteArrayInputStream bis = new ByteArrayInputStream(<a name="line.358"></a>
+<span class="sourceLineNo">359</span>                data, ProtobufUtil.lengthOfPBMagic(), data.length);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>            RSGroupInfoList.add(RSGroupProtobufUtil.toGroupInfo(<a name="line.360"></a>
+<span class="sourceLineNo">361</span>                RSGroupProtos.RSGroupInfo.parseFrom(bis)));<a name="line.361"></a>
+<span class="sourceLineNo">362</span>          }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>        }<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        LOG.debug("Read ZK GroupInfo count:" + RSGroupInfoList.size());<a name="line.364"></a>
+<span class="sourceLineNo">365</span>      }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    } catch (KeeperException|DeserializationException|InterruptedException e) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      throw new IOException("Failed to read rsGroupZNode",e);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    return RSGroupInfoList;<a name="line.369"></a>
+<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span>  @Override<a name="line.372"></a>
+<span class="sourceLineNo">373</span>  public void refresh() throws IOException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    refresh(false);<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
 <span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    final List&lt;TableName&gt; specialTables;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>    if(!masterServices.isInitialized()) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.379"></a>
-<span class="sourceLineNo">380</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    } else {<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      specialTables =<a name="line.382"></a>
-<span class="sourceLineNo">383</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.383"></a>
-<span class="sourceLineNo">384</span>    }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span>    for (TableName table : specialTables) {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      orphanTables.add(table);<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    }<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    for (RSGroupInfo group: groupList) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        orphanTables.removeAll(group.getTables());<a name="line.391"></a>
-<span class="sourceLineNo">392</span>      }<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    // from region group table or zk<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.397"></a>
-<span class="sourceLineNo">398</span>        orphanTables));<a name="line.398"></a>
-<span class="sourceLineNo">399</span><a name="line.399"></a>
-<span class="sourceLineNo">400</span>    // populate the data<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    for (RSGroupInfo group : groupList) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      newGroupMap.put(group.getName(), group);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      for(TableName table: group.getTables()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>        newTableMap.put(table, group.getName());<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      }<a name="line.407"></a>
-<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.409"></a>
-<span class="sourceLineNo">410</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  }<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      throws IOException {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>    // populate deletes<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    for(String groupName : prevRSGroups) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      if(!groupMap.containsKey(groupName)) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        mutations.add(d);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
+<span class="sourceLineNo">377</span>  /**<a name="line.377"></a>
+<span class="sourceLineNo">378</span>   * Read rsgroup info from the source of truth, the hbase:rsgroup table.<a name="line.378"></a>
+<span class="sourceLineNo">379</span>   * Update zk cache. Called on startup of the manager.<a name="line.379"></a>
+<span class="sourceLineNo">380</span>   */<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  private synchronized void refresh(boolean forceOnline) throws IOException {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    List&lt;RSGroupInfo&gt; groupList = new LinkedList&lt;&gt;();<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>    // Overwrite anything read from zk, group table is source of truth<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    // if online read from GROUP table<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    if (forceOnline || isOnline()) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      LOG.debug("Refreshing in Online mode.");<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      if (rsGroupTable == null) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        rsGroupTable = conn.getTable(RSGROUP_TABLE_NAME);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      groupList.addAll(retrieveGroupListFromGroupTable());<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    } else {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      LOG.debug("Refreshing in Offline mode.");<a name="line.393"></a>
+<span class="sourceLineNo">394</span>      groupList.addAll(retrieveGroupListFromZookeeper());<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    }<a name="line.395"></a>
+<span class="sourceLineNo">396</span><a name="line.396"></a>
+<span class="sourceLineNo">397</span>    // refresh default group, prune<a name="line.397"></a>
+<span class="sourceLineNo">398</span>    NavigableSet&lt;TableName&gt; orphanTables = new TreeSet&lt;&gt;();<a name="line.398"></a>
+<span class="sourceLineNo">399</span>    for(String entry: masterServices.getTableDescriptors().getAll().keySet()) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      orphanTables.add(TableName.valueOf(entry));<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span>    final List&lt;TableName&gt; specialTables;<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    if(!masterServices.isInitialized()) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      specialTables = Arrays.asList(AccessControlLists.ACL_TABLE_NAME, TableName.META_TABLE_NAME,<a name="line.405"></a>
+<span class="sourceLineNo">406</span>          TableName.NAMESPACE_TABLE_NAME, RSGROUP_TABLE_NAME);<a name="line.406"></a>
+<span class="sourceLineNo">407</span>    } else {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>      specialTables =<a name="line.408"></a>
+<span class="sourceLineNo">409</span>          masterServices.listTableNamesByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR);<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    for (TableName table : specialTables) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      orphanTables.add(table);<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    for (RSGroupInfo group: groupList) {<a name="line.415"></a>
+<span class="sourceLineNo">416</span>      if(!group.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>        orphanTables.removeAll(group.getTables());<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      }<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
+<span class="sourceLineNo">420</span><a name="line.420"></a>
+<span class="sourceLineNo">421</span>    // This is added to the last of the list so it overwrites the 'default' rsgroup loaded<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    // from region group table or zk<a name="line.422"></a>
+<span class="sourceLineNo">423</span>    groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(),<a name="line.423"></a>
+<span class="sourceLineNo">424</span>        orphanTables));<a name="line.424"></a>
 <span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>    // populate puts<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      mutations.add(p);<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.433"></a>
-<span class="sourceLineNo">434</span>      }<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    }<a name="line.435"></a>
-<span class="sourceLineNo">436</span><a name="line.436"></a>
-<span class="sourceLineNo">437</span>    if(mutations.size() &gt; 0) {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      multiMutate(mutations);<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    }<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    return newTableMap;<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  }<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span>  private synchronized void flushConfig()<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  throws IOException {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    flushConfig(this.rsGroupMap);<a name="line.445"></a>
-<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
-<span class="sourceLineNo">447</span><a name="line.447"></a>
-<span class="sourceLineNo">448</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  throws IOException {<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.450"></a>
+<span class="sourceLineNo">426</span>    // populate the data<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    HashMap&lt;TableName, String&gt; newTableMap = Maps.newHashMap();<a name="line.428"></a>
+<span class="sourceLineNo">429</span>    for (RSGroupInfo group : groupList) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      newGroupMap.put(group.getName(), group);<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      for(TableName table: group.getTables()) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span>        newTableMap.put(table, group.getName());<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
+<span class="sourceLineNo">435</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    updateCacheOfRSGroups(rsGroupMap.keySet());<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>  private synchronized Map&lt;TableName,String&gt; flushConfigTable(Map&lt;String,RSGroupInfo&gt; groupMap)<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      throws IOException {<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    Map&lt;TableName,String&gt; newTableMap = Maps.newHashMap();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>    List&lt;Mutation&gt; mutations = Lists.newArrayList();<a name="line.442"></a>
+<span class="sourceLineNo">443</span><a name="line.443"></a>
+<span class="sourceLineNo">444</span>    // populate deletes<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    for(String groupName : prevRSGroups) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      if(!groupMap.containsKey(groupName)) {<a name="line.446"></a>
+<span class="sourceLineNo">447</span>        Delete d = new Delete(Bytes.toBytes(groupName));<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        mutations.add(d);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
 <span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    // For offline mode persistence is still unavailable<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    // We're refreshing in-memory state but only for default servers<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    if (!isOnline()) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>      if (!m.equals(newGroupMap) ||<a name="line.458"></a>
-<span class="sourceLineNo">459</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      }<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      rsGroupMap = newGroupMap;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      return;<a name="line.464"></a>
+<span class="sourceLineNo">452</span>    // populate puts<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    for(RSGroupInfo RSGroupInfo : groupMap.values()) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      Put p = new Put(Bytes.toBytes(RSGroupInfo.getName()));<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      p.addColumn(META_FAMILY_BYTES, META_QUALIFIER_BYTES, proto.toByteArray());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      mutations.add(p);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      for(TableName entry: RSGroupInfo.getTables()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>        newTableMap.put(entry, RSGroupInfo.getName());<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      }<a name="line.460"></a>
+<span class="sourceLineNo">461</span>    }<a name="line.461"></a>
+<span class="sourceLineNo">462</span><a name="line.462"></a>
+<span class="sourceLineNo">463</span>    if(mutations.size() &gt; 0) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>      multiMutate(mutations);<a name="line.464"></a>
 <span class="sourceLineNo">465</span>    }<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.467"></a>
+<span class="sourceLineNo">466</span>    return newTableMap;<a name="line.466"></a>
+<span class="sourceLineNo">467</span>  }<a name="line.467"></a>
 <span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>    // Make changes visible after having been persisted to the source of truth<a name="line.469"></a>
-<span class="sourceLineNo">470</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>    try {<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      for(String groupName : prevRSGroups) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.478"></a>
-<span class="sourceLineNo">479</span>          String znode = ZNodePaths.joinZNode(groupBasePath, groupName);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.480"></a>
-<span class="sourceLineNo">481</span>        }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      }<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.485"></a>
-<span class="sourceLineNo">486</span>        String znode = ZNodePaths.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        LOG.debug("Updating znode: "+znode);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.490"></a>
-<span class="sourceLineNo">491</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.491"></a>
-<span class="sourceLineNo">492</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    } catch (KeeperException e) {<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.502"></a>
-<span class="sourceLineNo">503</span>  }<a name="line.503"></a>
-<span class="sourceLineNo">504</span><a name="line.504"></a>
-<span class="sourceLineNo">505</span>  /**<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * Make changes visible.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   * Caller must be synchronized on 'this'.<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   */<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.509"></a>
-<span class="sourceLineNo">510</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    // Make maps Immutable.<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  /**<a name="line.516"></a>
-<span class="sourceLineNo">517</span>   * Update cache of rsgroups.<a name="line.517"></a>
-<span class="sourceLineNo">518</span>   * Caller must be synchronized on 'this'.<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @param currentGroups Current list of Groups.<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
-<span class="sourceLineNo">521</span>  private void updateCacheOfRSGroups(final Set&lt;String&gt; currentGroups) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    this.prevRSGroups.clear();<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    this.prevRSGroups.addAll(currentGroups);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>  // Called by getDefaultServers. Presume it has lock in place.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>  private List&lt;ServerName&gt; getOnlineRS() throws IOException {<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    if (masterServices != null) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      return masterServices.getServerManager().getOnlineServersList();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    }<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    LOG.debug("Reading online RS from zookeeper");<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    List&lt;ServerName&gt; servers = new LinkedList&lt;&gt;();<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    try {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>      for (String el: ZKUtil.listChildrenNoWatch(watcher, watcher.znodePaths.rsZNode)) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span>        servers.add(ServerName.parseServerName(el));<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      }<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    } catch (KeeperException e) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      throw new IOException("Failed to retrieve server list from zookeeper", e);<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    }<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    return servers;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>  }<a name="line.541"></a>
-<span class="sourceLineNo">542</span><a name="line.542"></a>
-<span class="sourceLineNo">543</span>  // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs.<a name="line.543"></a>
-<span class="sourceLineNo">544</span>  private SortedSet&lt;Address&gt; getDefaultServers() throws IOException {<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    SortedSet&lt;Address&gt; defaultServers = Sets.newTreeSet();<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    for (ServerName serverName : getOnlineRS()) {<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      Address server =<a name="line.547"></a>
-<span class="sourceLineNo">548</span>          Address.fromParts(serverName.getHostname(), serverName.getPort());<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      boolean found = false;<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      for(RSGroupInfo rsgi: listRSGroups()) {<a name="line.550"></a>
-<span class="sourceLineNo">551</span>        if(!RSGroupInfo.DEFAULT_GROUP.equals(rsgi.getName()) &amp;&amp;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>            rsgi.containsServer(server)) {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>          found = true;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>          break;<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        }<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      }<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      if (!found) {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>        defaultServers.add(server);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>      }<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    }<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    return defaultServers;<a name="line.561"></a>
-<span class="sourceLineNo">562</span>  }<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>  // Called by ServerEventsListenerThread. Synchronize on this because redoing<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  // the rsGroupMap then writing it out.<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  private synchronized void updateDefaultServers(SortedSet&lt;Address&gt; servers) throws IOException {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    RSGroupInfo info = rsGroupMap.get(RSGroupInfo.DEFAULT_GROUP);<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    RSGroupInfo newInfo = new RSGroupInfo(info.getName(), servers, info.getTables());<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    newGroupMap.put(newInfo.getName(), newInfo);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    flushConfig(newGroupMap);<a name="line.571"></a>
-<span class="sourceLineNo">572</span>  }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span>  // Called by FailedOpenUpdaterThread<a name="line.574"></a>
-<span class="sourceLineNo">575</span>  private void updateFailedAssignments() {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    // Kick all regions in FAILED_OPEN state<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    List&lt;RegionInfo&gt; stuckAssignments = Lists.newArrayList();<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    for (RegionStateNode state:<a name="line.578"></a>
-<span class="sourceLineNo">579</span>        masterServices.getAssignmentManager().getRegionStates().getRegionsInTransition()) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      if (state.isStuck()) {<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        stuckAssignments.add(state.getRegionInfo());<a name="line.581"></a>
+<span class="sourceLineNo">469</span>  private synchronized void flushConfig()<a name="line.469"></a>
+<span class="sourceLineNo">470</span>  throws IOException {<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    flushConfig(this.rsGroupMap);<a name="line.471"></a>
+<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>  private synchronized void flushConfig(Map&lt;String, RSGroupInfo&gt; newGroupMap)<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  throws IOException {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    Map&lt;TableName, String&gt; newTableMap;<a name="line.476"></a>
+<span class="sourceLineNo">477</span><a name="line.477"></a>
+<span class="sourceLineNo">478</span>    // For offline mode persistence is still unavailable<a name="line.478"></a>
+<span class="sourceLineNo">479</span>    // We're refreshing in-memory state but only for default servers<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    if (!isOnline()) {<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      Map&lt;String, RSGroupInfo&gt; m = Maps.newHashMap(rsGroupMap);<a name="line.481"></a>
+<span class="sourceLineNo">482</span>      RSGroupInfo oldDefaultGroup = m.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.482"></a>
+<span class="sourceLineNo">483</span>      RSGroupInfo newDefaultGroup = newGroupMap.remove(RSGroupInfo.DEFAULT_GROUP);<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      if (!m.equals(newGroupMap) ||<a name="line.484"></a>
+<span class="sourceLineNo">485</span>          !oldDefaultGroup.getTables().equals(newDefaultGroup.getTables())) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        throw new IOException("Only default servers can be updated during offline mode");<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      newGroupMap.put(RSGroupInfo.DEFAULT_GROUP, newDefaultGroup);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      rsGroupMap = newGroupMap;<a name="line.489"></a>
+<span class="sourceLineNo">490</span>      return;<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    }<a name="line.491"></a>
+<span class="sourceLineNo">492</span><a name="line.492"></a>
+<span class="sourceLineNo">493</span>    newTableMap = flushConfigTable(newGroupMap);<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>    // Make changes visible after having been persisted to the source of truth<a name="line.495"></a>
+<span class="sourceLineNo">496</span>    resetRSGroupAndTableMaps(newGroupMap, newTableMap);<a name="line.496"></a>
+<span class="sourceLineNo">497</span><a name="line.497"></a>
+<span class="sourceLineNo">498</span>    try {<a name="line.498"></a>
+<span class="sourceLineNo">499</span>      String groupBasePath = ZNodePaths.joinZNode(watcher.znodePaths.baseZNode, rsGroupZNode);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>      ZKUtil.createAndFailSilent(watcher, groupBasePath, ProtobufMagic.PB_MAGIC);<a name="line.500"></a>
+<span class="sourceLineNo">501</span><a name="line.501"></a>
+<span class="sourceLineNo">502</span>      List&lt;ZKUtil.ZKUtilOp&gt; zkOps = new ArrayList&lt;&gt;(newGroupMap.size());<a name="line.502"></a>
+<span class="sourceLineNo">503</span>      for(String groupName : prevRSGroups) {<a name="line.503"></a>
+<span class="sourceLineNo">504</span>        if(!newGroupMap.containsKey(groupName)) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>          String znode = ZNodePaths.joinZNode(groupBasePath, groupName);<a name="line.505"></a>
+<span class="sourceLineNo">506</span>          zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.506"></a>
+<span class="sourceLineNo">507</span>        }<a name="line.507"></a>
+<span class="sourceLineNo">508</span>      }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>      for (RSGroupInfo RSGroupInfo : newGroupMap.values()) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        String znode = ZNodePaths.joinZNode(groupBasePath, RSGroupInfo.getName());<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        RSGroupProtos.RSGroupInfo proto = RSGroupProtobufUtil.toProtoGroupInfo(RSGroupInfo);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        LOG.debug("Updating znode: "+znode);<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        ZKUtil.createAndFailSilent(watcher, znode);<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        zkOps.add(ZKUtil.ZKUtilOp.deleteNodeFailSilent(znode));<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        zkOps.add(ZKUtil.ZKUtilOp.createAndFailSilent(znode,<a name="line.517"></a>
+<span class="sourceLineNo">518</span>            ProtobufUtil.prependPBMagic(proto.toByteArray())));<a name="line.518"></a>
+<span class="sourceLineNo">519</span>      }<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      LOG.debug("Writing ZK GroupInfo count: " + zkOps.size());<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>      ZKUtil.multiOrSequential(watcher, zkOps, false);<a name="line.522"></a>
+<span class="sourceLineNo">523</span>    } catch (KeeperException e) {<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      LOG.error("Failed to write to rsGroupZNode", e);<a name="line.524"></a>
+<span class="sourceLineNo">525</span>      masterServices.abort("Failed to write to rsGroupZNode", e);<a name="line.525"></a>
+<span class="sourceLineNo">526</span>      throw new IOException("Failed to write to rsGroupZNode",e);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>    }<a name="line.527"></a>
+<span class="sourceLineNo">528</span>    updateCacheOfRSGroups(newGroupMap.keySet());<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>  /**<a name="line.531"></a>
+<span class="sourceLineNo">532</span>   * Make changes visible.<a name="line.532"></a>
+<span class="sourceLineNo">533</span>   * Caller must be synchronized on 'this'.<a name="line.533"></a>
+<span class="sourceLineNo">534</span>   */<a name="line.534"></a>
+<span class="sourceLineNo">535</span>  private void resetRSGroupAndTableMaps(Map&lt;String, RSGroupInfo&gt; newRSGroupMap,<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      Map&lt;TableName, String&gt; newTableMap) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    // Make maps Immutable.<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    this.rsGroupMap = Collections.unmodifiableMap(newRSGroupMap);<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    this.tableMap = Collections.unmodifiableMap(newTableMap);<a name="line.539"></a>
+<span class="sourceLineNo">540</span>  }<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * Update cache of rsgroups.<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * Caller must be synchronized on 'this'.<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * @param currentGroups Current list of Groups.<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>  private void updateCacheOfRSGroups(final Set&lt;String&gt; currentGroups) {<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    this.prevRSGroups.clear();<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    this.prevRSGroups.addAll(currentGroups);<a name="line.549"></a>
+<span class="sourceLineNo">550</span>  }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>  // Called by getDefaultServers. Presume it has lock in place.<a name="line.552"></a>
+<span class="sourceLineNo">553</span>  private List&lt;ServerName&gt; getOnlineRS() throws IOException {<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    if (masterServices != null) {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>      return masterServices.getServerManager().getOnlineServersList();<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    }<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    LOG.debug("Reading online RS from zookeeper");<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    List&lt;ServerName&gt; servers = new LinkedList&lt;&gt;();<a name="line.558"></a>
+<span class="sourceLineNo">559</span>    try {<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      for (String el: ZKUtil.listChildrenNoWatch(watcher, watcher.znodePaths.rsZNode)) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span>        servers.add(ServerName.parseServerName(el));<a name="line.561"></a>
+<span class="sourceLineNo">562</span>      }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>    } catch (KeeperException e) {<a name="line.563"></a>
+<span class="sourceLineNo">564</span>      throw new IOException("Failed to retrieve server list from zookeeper", e);<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    return servers;<a name="line.566"></a>
+<span class="sourceLineNo">567</span>  }<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>  // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs.<a name="line.569"></a>
+<span class="sourceLineNo">570</span>  private SortedSet&lt;Address&gt; getDefaultServers() throws IOException {<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    SortedSet&lt;Address&gt; defaultServers = Sets.newTreeSet();<a name="line.571"></a>
+<span class="sourceLineNo">572</span>    for (ServerName serverName : getOnlineRS()) {<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      Address server =<a name="line.573"></a>
+<span class="sourceLineNo">574</span>          Address.fromParts(serverName.getHostname(), serverName.getPort());<a name="line.574"></a>
+<span class="sourceLineNo">575</span>      boolean found = false;<a name="line.575"></a>
+<span class="sourceLineNo">576</span>      for(RSGroupInfo rsgi: listRSGroups()) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>        if(!RSGroupInfo.DEFAULT_GROUP.equals(rsgi.getName()) &amp;&amp;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>            rsgi.containsServer(server)) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>          found = true;<a name="line.579"></a>
+<span class="sourceLineNo">580</span>          break;<a name="line.580"></a>
+<span class="sourceLineNo">581</span>        }<a name="line.581"></a>
 <span class="sourceLineNo">582</span>      }<a name="line.582"></a>
-<span class="sourceLineNo">583</span>    }<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    for (RegionInfo region: stuckAssignments) {<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      LOG.info("Retrying assignment of " + region);<a name="line.585"></a>
-<span class="sourceLineNo">586</span>      try {<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        masterServices.getAssignmentManager().unassign(region);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>      } catch (IOException e) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span>        LOG.warn("Unable to reassign " + region, e);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>      }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>    }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>  }<a name="line.592"></a>
-<span class="sourceLineNo">593</span><a name="line.593"></a>
-<span class="sourceLineNo">594</span>  /**<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * Calls {@link RSGroupInfoManagerImpl#updateDefaultServers(SortedSet)} to update list of known<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * servers. Notifications about server changes are received by registering {@link ServerListener}.<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * As a listener, we need to return immediately, so the real work of updating the servers is<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * done asynchronously in this thread.<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   */<a name="line.599"></a>
-<span class="sourceLineNo">600</span>  private class ServerEventsListenerThread extends Thread implements ServerListener {<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    private final Log LOG = LogFactory.getLog(ServerEventsListenerThread.class);<a name="line.601"></a>
-<span class="sourceLineNo">602</span>    private boolean changed = false;<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span>    ServerEventsListenerThread() {<a name="line.604"></a>
-<span class="sourceLineNo">605</span>      setDaemon(true);<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    }<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>    @Override<a name="line.608"></a>
-<span class="sourceLineNo">609</span>    public void serverAdded(ServerName serverName) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>      serverChanged();<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    }<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    @Override<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    public void serverRemoved(ServerName serverName) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      serverChanged();<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>    private synchronized void serverChanged() {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>      changed = true;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      this.notify();<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>    @Override<a name="line.623"></a>
-<span class="sourceLineNo">624</span>    public void run() {<a name="line.624"></a>
-<span class="sourceLineNo">625</span>      setName(ServerEventsListenerThread.class.getName() + "-" + masterServices.getServerName());<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      SortedSet&lt;Address&gt; prevDefaultServers = new TreeSet&lt;&gt;();<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      while(isMasterRunning(masterServices)) {<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        try {<a name="line.628"></a>
-<span class="sourceLineNo">629</span>          LOG.info("Updating default servers.");<a name="line.629"></a>
-<span class="sourceLineNo">630</span>          SortedSet&lt;Address&gt; servers = RSGroupInfoManagerImpl.this.getDefaultServers();<a name="line.630"></a>
-<span class="sourceLineNo">631</span>          if (!servers.equals(prevDefaultServers)) {<a name="line.631"></a>
-<span class="sourceLineNo">632</span>            RSGroupInfoManagerImpl.this.updateDefaultServers(servers);<a name="line.632"></a>
-<span class="sourceLineNo">633</span>            prevDefaultServers = servers;<a name="line.633"></a>
-<span class="sourceLineNo">634</span>            LOG.info("Updated with servers: "+servers.size());<a name="line.634"></a>
-<span class="sourceLineNo">635</span>          }<a name="line.635"></a>
-<span class="sourceLineNo">636</span>          try {<a name="line.636"></a>
-<span class="sourceLineNo">637</span>            synchronized (this) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>              while (!changed) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>                wait();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>              }<a name="line.640"></a>
-<span class="sourceLineNo">641</span>              changed = false;<a name="line.641"></a>
-<span class="sourceLineNo">642</span>            }<a name="line.642"></a>
-<span class="sourceLineNo">643</span>          } catch (InterruptedException e) {<a name="line.643"></a>
-<span class="sourceLineNo">644</span>            LOG.warn("Interrupted", e);<a name="line.644"></a>
-<span class="sourceLineNo">645</span>          }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>        } catch (IOException e) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>          LOG.warn("Failed to update default servers", e);<a name="line.647"></a>
-<span class="sourceLineNo">648</span>        }<a name="line.648"></a>
-<span class="sourceLineNo">649</span>      }<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    }<a name="line.650"></a>
-<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
-<span class="sourceLineNo">652</span><a name="line.652"></a>
-<span class="sourceLineNo">653</span>  private class FailedOpenUpdaterThread extends Thread implements ServerListener {<a name="line.653"></a>
-<span class="sourceLineNo">654</span>    private final long waitInterval;<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    private volatile boolean hasChanged = false;<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span>    public FailedOpenUpdaterThread(Configuration conf) {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>      this.waitInterval = conf.getLong(REASSIGN_WAIT_INTERVAL_KEY,<a name="line.658"></a>
-<span class="sourceLineNo">659</span>        DEFAULT_REASSIGN_WAIT_INTERVAL);<a name="line.659"></a>
-<span class="sourceLineNo">660</span>      setDaemon(true);<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    }<a name="line.661"></a>
-<span class="sourceLineNo">662</span><a name="line.662"></a>
-<span class="sourceLineNo">663</span>    @Override<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    public void serverAdded(ServerName serverName) {<a name="line.664"></a>
-<span class="sourceLineNo">665</span>      serverChanged();<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>    @Override<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    public void serverRemoved(ServerName serverName) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    }<a name="line.670"></a>
-<span class="sourceLineNo">671</span><a name="line.671"></a>
-<span class="sourceLineNo">672</span>    @Override<a name="line.672"></a>
-<span class="sourceLineNo">673</span>    public void run() {<a name="line.673"></a>
-<span class="sourceLineNo">674</span>      while (isMasterRunning(masterServices)) {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        boolean interrupted = false;<a name="line.675"></a>
-<span class="sourceLineNo">676</span>        try {<a name="line.676"></a>
-<span class="sourceLineNo">677</span>          synchronized (this) {<a name="line.677"></a>
-<span class="sourceLineNo">678</span>            while (!hasChanged) {<a name="line.678"></a>
-<span class="sourceLineNo">679</span>              wait();<a name="line.679"></a>
-<span class="sourceLineNo">680</span>            }<a name="line.680"></a>
-<span class="sourceLineNo">681</span>            hasChanged = false;<a name="line.681"></a>
-<span class="sourceLineNo">682</span>          }<a name="line.682"></a>
-<span class="sourceLineNo">683</span>        } catch (InterruptedException e) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span>          LOG.warn("Interrupted", e);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>          interrupted = true;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>        }<a name="line.686"></a>
-<span class="sourceLineNo">687</span>        if (!isMasterRunning(masterServices) || interrupted) {<a name="line.687"></a>
-<span class="sourceLineNo">688</span>          continue;<a name="line.688"></a>
-<span class="sourceLineNo">689</span>        }<a name="line.689"></a>
-<span class="sourceLineNo">690</span><a name="line.690"></a>
-<span class="sourceLineNo">691</span>        // First, wait a while in case more servers are about to rejoin the cluster<a name="line.691"></a>
-<span class="sourceLineNo">692</span>        try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>          Thread.sleep(waitInterval);<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        } catch (InterruptedException e) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          LOG.warn("Interrupted", e);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        }<a name="line.696"></a>
-<span class="sourceLineNo">697</span>        if (!isMasterRunning(masterServices)) {<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          continue;<a name="line.698"></a>
-<span class="sourceLineNo">699</span>        }<a name="line.699"></a>
-<span class="sourceLineNo">700</span><a name="line.700"></a>
-<span class="sourceLineNo">701</span>        // Kick all regions in FAILED_OPEN state<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        updateFailedAssignments();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      }<a name="line.703"></a>
-<span class="sourceLineNo">704</span>    }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>    public void serverChanged() {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      synchronized (this) {<a name="line.707"></a>
-<span class="sourceLineNo">708</span>        hasChanged = true;<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        this.notify();<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  private class RSGroupStartupWorker extends Thread {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    private final Log LOG = LogFactory.getLog(RSGroupStartupWorker.class);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    private volatile boolean online = false;<a name="line.716"></a>
-<span class="sourceLineNo">717</span><a name="line.717"></a>
-<span class="sourceLineNo">718</span>    RSGroupStartupWorker() {<a name="line.718"></a>
-<span class="sourceLineNo">719</span>      setDaemon(true);<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    }<a name="line.720"></a>
-<span class="sourceLineNo">721</span><a name="line.721"></a>
-<span class="sourceLineNo">722</span>    @Override<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    public void run() {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      setName(RSGroupStartupWorker.class.getName() + "-" + masterServices.getServerName());<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      if (waitForGroupTableOnline()) {<a name="line.725"></a>
-<span class="sourceLineNo">726</span>        LOG.info("GroupBasedLoadBalancer is now online");<a name="line.726"></a>
-<span class="sourceLineNo">727</span>      }<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    }<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>    private boolean waitForGroupTableOnline() {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final List&lt;RegionInfo&gt; foundRegions = new LinkedList&lt;&gt;();<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      final List&lt;RegionInfo&gt; assignedRegions = new LinkedList&lt;&gt;();<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      final AtomicBoolean found = new AtomicBoolean(false);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      final TableStateManager tsm = masterServices.getTableStateManager();<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      boolean createSent = false;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>      while (!found.get() &amp;&amp; isMasterRunning(masterServices)) {<a name="line.736"></a>
-<span class="sourceLineNo">737</span>        foundRegions.clear();<a name="line.737"></a>
-<span class="sourceLineNo">738</span>        assignedRegions.clear();<a name="line.738"></a>
-<span class="sourceLineNo">739</span>        found.set(true);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>        try {<a name="line.740"></a>
-<span class="sourceLineNo">741</span>          conn.getTable(TableName.NAMESPACE_TABLE_NAME);<a name="line.741"></a>
-<span class="sourceLineNo">742</span>          conn.getTable(RSGROUP_TABLE_NAME);<a name="line.742"></a>
-<span class="sourceLineNo">743</span>          boolean rootMetaFound =<a name="line.743"></a>
-<span class="sourceLineNo">744</span>              masterServices.getMetaTableLocator().verifyMetaRegionLocation(<a name="line.744"></a>
-<span class="sourceLineNo">745</span>                  conn, masterServices.getZooKeeper(), 1);<a name="line.745"></a>
-<span class="sourceLineNo">746</span>          final AtomicBoolean nsFound = new AtomicBoolean(false);<a name="line.746"></a>
-<span class="sourceLineNo">747</span>          if (rootMetaFound) {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>            MetaTableAccessor.Visitor visitor = new DefaultVisitorBase() {<a name="line.748"></a>
-<span class="sourceLineNo">749</span>              @Override<a name="line.749"></a>
-<span class="sourceLineNo">750</span>              public boolean visitInternal(Result row) throws IOException {<a name="line.750"></a>
-<span class="sourceLineNo">751</span>                RegionInfo info = MetaTableAccessor.getRegionInfo(row);<a name="line.751"></a>
-<span class="sourceLineNo">752</span>                if (info != null) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>                  Cell serverCell =<a name="line.753"></a>
-<span class="sourceLineNo">754</span>                      row.getColumnLatestCell(HConstants.CATALOG_FAMILY,<a name="line.754"></a>
-<span class="sourceLineNo">755</span>                          HConstants.SERVER_QUALIFIER);<a name="line.755"></a>
-<span class="sourceLineNo">756</span>                  if (RSGROUP_TABLE_NAME.equals(info.getTable()) &amp;&amp; serverCell != null) {<a name="line.756"></a>
-<span class="sourceLineNo">757</span>                    ServerName sn =<a name="line.757"></a>
-<span class="sourceLineNo">758</span>                        ServerName.parseVersionedServerName(CellUtil.cloneValue(serverCell));<a name="line.758"></a>
-<span class="sourceLineNo">759</span>                    if (sn == null) {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>                      found.set(false);<a name="line.760"></a>
-<span class="sourceLineNo">761</span>                    } else if (tsm.isTableState(RSGROUP_TABLE_NAME, TableState.State.ENABLED)) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span>                      try {<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                        ClientProtos.ClientService.BlockingInterface rs = conn.getClient(sn);<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                        ClientProtos.GetRequest request =<a name="line.764"></a>
-<span class="sourceLineNo">765</span>                            RequestConverter.buildGetRequest(info.getRegionName(),<a name="line.765"></a>
-<span class="sourceLineNo">766</span>                                new Get(ROW_KEY));<a name="line.766"></a>
-<span class="sourceLineNo">767</span>                        rs.get(null, request);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>                        assignedRegions.add(info);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>                      } catch(Exception ex) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>                        LOG.debug("Caught exception while verifying group region", ex);<a name="line.770"></a>
-<span class="sourceLineNo">771</span>                      }<a name="line.771"></a>
-<span class="sourceLineNo">772</span>                    }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>                    foundRegions.add(info);<a name="line.773"></a>
-<span class="sourceLineNo">774</span>                  }<a name="line.774"></a>
-<span class="sourceLineNo">775</span>                  if (TableName.NAMESPACE_TABLE_NAME.equals(info.getTable())) {<a name="line.775"></a>
-<span class="sourceLineNo">776</span>                    Cell cell = row.getColumnLatestCell(HConstants.CATALOG_FAMILY,<a name="line.776"></a>
-<span class="sourceLineNo">777</span>                        HConstants.SERVER_QUALIFIER);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>                    ServerName sn = null;<a name="line.778"></a>
-<span class="sourceLineNo">779</span>                    if(cell != null) {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>                      sn = ServerName.parseVersionedServerName(CellUtil.cloneValue(cell));<a name="line.780"></a>
-<span class="sourceLineNo">781</span>                    }<a name="line.781"></a>
-<span class="sourceLineNo">782</span>                    if (sn == null) {<a name="line.782"></a>
-<span class="sourceLineNo">783</span>                      nsFound.set(false);<a name="line.783"></a>
-<span class="sourceLineNo">784</span>                    } else if (tsm.isTableState(TableName.NAMESPACE_TABLE_NAME,<a name="line.784"></a>
-<span class="sourceLineNo">785</span>                        TableState.State.ENABLED)) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>                      try {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>                        ClientProtos.ClientService.BlockingInterface rs = conn.getClient(sn);<a name="line.787"></a>
-<span class="sourceLineNo">788</span>                        ClientProtos.GetRequest request =<a name="line.788"></a>
-<span class="sourceLineNo">789</span>                            RequestConverter.buildGetRequest(info.getRegionName(),<a name="line.789"></a>
-<span class="sourceLineNo">790</span>                                new Get(ROW_KEY));<a name="line.790"></a>
-<span class="sourceLineNo">791</span>                        rs.get(null, request);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>                        nsFound.set(true);<a name="line.792"></a>
-<span class="sourceLineNo">793</span>                      } catch(Exception ex) {<a name="line.793"></a>
-<span class="sourceLineNo">794</span>                        LOG.debug("Caught exception while verifying group region", ex);<a name="line.794"></a>
-<span class="sourceLineNo">795</span>                      }<a name="line.795"></a>
-<span class="sourceLineNo">796</span>                    }<a name="line.796"></a>
-<span class="sourceLineNo">797</span>                  }<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                }<a name="line.798"></a>
-<span class="sourceLineNo">799</span>                return true;<a name="line.799"></a>
-<span class="sourceLineNo">800</span>              }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>            };<a name="line.801"></a>
-<span class="sourceLineNo">802</span>            MetaTableAccessor.fullScanRegions(conn, visitor);<a name="line.802"></a>
-<span class="sourceLineNo">803</span>            // if no regions in meta then we have to create the table<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            if (foundRegions.size() &lt; 1 &amp;&amp; rootMetaFound &amp;&amp; !createSent &amp;&amp; nsFound.get()) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>              createRSGroupTable();<a name="line.805"></a>
-<span class="sourceLineNo">806</span>              createSent = true;<a name="line.806"></a>
-<span class="sourceLineNo">807</span>            }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            LOG.info("RSGroup table=" + RSGROUP_TABLE_NAME + " isOnline=" + found.get()<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                + ", regionCount=" + foundRegions.size() + ", assignCount="<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                + assignedRegions.size() + ", rootMetaFound=" + rootMetaFound);<a name="line.810"></a>
-<span class="sourceLineNo">811</span>            found.set(found.get() &amp;&amp; assignedRegions.size() == foundRegions.size()<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                &amp;&amp; foundRegions.size() &gt; 0);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>          } else {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>            LOG.info("Waiting for catalog tables to come online");<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            found.set(false);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>          }<a name="line.816"></a>
-<span class="sourceLineNo">817</span>          if (found.get()) {<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            LOG.debug("With group table online, refreshing cached information.");<a name="line.818"></a>
-<span class="sourceLineNo">819</span>            RSGroupInfoManagerImpl.this.refresh(true);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>            online = true;<a name="line.820"></a>
-<span class="sourceLineNo">821</span>            //flush any inconsistencies between ZK and HTable<a name="line.821"></a>
-<span class="sourceLineNo">822</span>            RSGroupInfoManagerImpl.this.flushConfig();<a name="line.822"></a>
-<span class="sourceLineNo">823</span>          }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>        } catch (RuntimeException e) {<a name="line.824"></a>
-<span class="sourceLineNo">825</span>          throw e;<a name="line.825"></a>
-<span class="sourceLineNo">826</span>        } catch(Exception e) {<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          found.set(false);<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          LOG.warn("Failed to perform check", e);<a name="line.828"></a>
-<span class="sourceLineNo">829</span>        }<a name="line.829"></a>
-<span class="sourceLineNo">830</span>        try {<a name="line.830"></a>
-<span class="sourceLineNo">831</span>          Thread.sleep(100);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>        } catch (InterruptedException e) {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          LOG.info("Sleep interrupted", e);<a name="line.833"></a>
-<span class="sourceLineNo">834</span>        }<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      }<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      return found.get();<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    }<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>    private void createRSGroupTable() throws IOException {<a name="line.839"></a>
-<span class="sourceLineNo">840</span>      Long procId = masterServices.createSystemTable(RSGROUP_TABLE_DESC);<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      // wait for region to be online<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      int tries = 600;<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      while (!(masterServices.getMasterProcedureExecutor().isFinished(procId))<a name="line.843"></a>
-<span class="sourceLineNo">844</span>          &amp;&amp; masterServices.getMasterProcedureExecutor().isRunning()<a name="line.844"></a>
-<span class="sourceLineNo">845</span>          &amp;&amp; tries &gt; 0) {<a name="line.845"></a>
-<span class="sourceLineNo">846</span>        try {<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          Thread.sleep(100);<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } catch (InterruptedException e) {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new IOException("Wait interrupted ", e);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        tries--;<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      if(tries &lt;= 0) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>        throw new IOException("Failed to create group table in a given time.");<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      } else {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>        Procedure&lt;?&gt; result = masterServices.getMasterProcedureExecutor().getResult(procId);<a name="line.856"></a>
-<span class="sourceLineNo">857</span>        if (result != null &amp;&amp; result.isFailed()) {<a name="line.857"></a>
-<span class="sourceLineNo">858</span>          throw new IOException("Failed to create group table. " +<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            result.getException().unwrapRemoteIOException());<a name="line.859"></a>
+<span class="sourceLineNo">583</span>      if (!found) {<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        defaultServers.add(server);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    return defaultServers;<a name="line.587"></a>
+<span class="sourceLineNo">588</span>  }<a name="line.588"></a>
+<span class="sourceLineNo">589</span><a name="line.589"></a>
+<span class="sourceLineNo">590</span>  // Called by ServerEventsListenerThread. Synchronize on this because redoing<a name="line.590"></a>
+<span class="sourceLineNo">591</span>  // the rsGroupMap then writing it out.<a name="line.591"></a>
+<span class="sourceLineNo">592</span>  private synchronized void updateDefaultServers(SortedSet&lt;Address&gt; servers) throws IOException {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    RSGroupInfo info = rsGroupMap.get(RSGroupInfo.DEFAULT_GROUP);<a name="line.593"></a>
+<span class="sourceLineNo">594</span>    RSGroupInfo newInfo = new RSGroupInfo(info.getName(), servers, info.getTables());<a name="line.594"></a>
+<span class="sourceLineNo">595</span>    HashMap&lt;String, RSGroupInfo&gt; newGroupMap = Maps.newHashMap(rsGroupMap);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>    newGroupMap.put(newInfo.getName(), newInfo);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>    flushConfig(newGroupMap);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>  }<a name="line.598"></a>
+<span class="sourceLineNo">599</span><a name="line.599"></a>
+<span class="sourceLineNo">600</span>  // Called by FailedOpenUpdaterThread<a name="line.600"></a>
+<span class="sourceLineNo">601</span>  private void updateFailedAssignments() {<a name="line.601"></a>
+<span class="sourceLineNo">602</span>    // Kick all regions in FAILED_OPEN state<a name="line.602"></a>
+<span class="sourceLineNo">603</span>    List&lt;RegionInfo&gt; stuckAssignments = Lists.newArrayList();<a name="line.603"></a>
+<span class="sourceLineNo">604</span>    for (RegionStateNode state:<a name="line.604"></a>
+<span class="sourceLineNo">605</span>        masterServices.getAssignmentManager().getRegionStates().getRegionsInTransition()) {<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      if (state.isStuck()) {<a name="line.606"></a>
+<span class="sourceLineNo">607</span>        stuckAssignments.add(state.getRegionInfo());<a name="line.607"></a>
+<span class="sourceLineNo">608</span>      }<a name="line.608"></a>
+<span class="sourceLineNo">609</span>    }<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    for (RegionInfo region: stuckAssignments) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>      LOG.info("Retrying assignment of " + region);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      try {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        masterServices.getAssignmentManager().unassign(region);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>      } catch (IOException e) {<a name="line.614"></a>
+<span class="sourceLineNo">615</span>        LOG.warn("Unable to reassign " + region, e);<a name="line.615"></a>
+<span class="sourceLineNo">616</span>      }<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    }<a name="line.617"></a>
+<span class="sourceLineNo">618</span>  }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span>  /**<a name="line.620"></a>
+<span class="sourceLineNo">621</span>   * Calls {@link RSGroupInfoManagerImpl#updateDefaultServers(SortedSet)} to update list of known<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * servers. Notifications about server changes are received by registering {@link ServerListener}.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   * As a listener, we need to return immediately, so the real work of updating the servers is<a name="line.623"></a>
+<span class="sourceLineNo">624</span>   * done asynchronously in this thread.<a name="line.624"></a>
+<span class="sourceLineNo">625</span>   */<a name="line.625"></a>
+<span class="sourceLineNo">626</span>  private class ServerEventsListenerThread extends Thread implements ServerListener {<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    private final Log LOG = LogFactory.getLog(ServerEventsListenerThread.class);<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    private boolean changed = false;<a name="line.628"></a>
+<span class="sourceLineNo">629</span><a name="line.629"></a>
+<span class="sourceLineNo">630</span>    ServerEventsListenerThread() {<a name="line.630"></a>
+<span class="sourceLineNo">631</span>      setDaemon(true);<a name="line.631"></a>
+<span class="sourceLineNo">632</span>    }<a name="line.632"></a>
+<span class="sourceLineNo">633</span><a name="line.633"></a>
+<span class="sourceLineNo">634</span>    @Override<a name="line.634"></a>
+<span class="sourceLineNo">635</span>    public void serverAdded(ServerName serverName) {<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      serverChanged();<a name="line.636"></a>
+<span class="sourceLineNo">637</span>    }<a name="line.637"></a>
+<span class="sourceLineNo">638</span><a name="line.638"></a>
+<span class="sourceLineNo">639</span>    @Override<a name="line.639"></a>
+<span class="sourceLineNo">640</span>    public void serverRemoved(ServerName serverName) {<a name="line.640"></a>
+<span class="sourceLineNo">641</span>      serverChanged();<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    }<a name="line.642"></a>
+<span class="sourceLineNo">643</span><a name="line.643"></a>
+<span class="sourceLineNo">644</span>    private synchronized void serverChanged() {<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      changed = true;<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      this.notify();<a name="line.646"></a>
+<span class="sourceLineNo">647</span>    }<a name="line.647"></a>
+<span class="sourceLineNo">648</span><a name="line.648"></a>
+<span class="sourceLineNo">649</span>    @Override<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    public void run() {<a name="line.650"></a>
+<span class="sourceLineNo">651</span>      setName(ServerEventsListenerThread.class.getName() + "-" + masterServices.getServerName());<a name="line.651"></a>
+<span class="sourceLineNo">652</span>      SortedSet&lt;Address&gt; prevDefaultServers = new TreeSet&lt;&gt;();<a name="line.652"></a>
+<span class="sourceLineNo">653</span>      while(isMasterRunning(masterServices)) {<a name="line.653"></a>
+<span class="sourceLineNo">654</span>        try {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>          LOG.info("Updating default servers.");<a name="line.655"></a>
+<span class="sourceLineNo">656</span>          SortedSet&lt;Address&gt; s

<TRUNCATED>

[49/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index d419b25..0c7854e 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20171130" />
+    <meta name="Date-Revision-yyyymmdd" content="20171201" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -289,7 +289,7 @@
 <td>3440</td>
 <td>0</td>
 <td>0</td>
-<td>20775</td></tr></table></div>
+<td>20765</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -9274,16 +9274,6 @@
 <td>0</td>
 <td>35</td></tr>
 <tr class="a">
-<td><a href="#org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.java">org/apache/hadoop/hbase/regionserver/wal/AsyncFSWAL.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>5</td></tr>
-<tr class="b">
-<td><a href="#org.apache.hadoop.hbase.regionserver.wal.AsyncProtobufLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/AsyncProtobufLogWriter.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>3</td></tr>
-<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.CompressionContext.java">org/apache/hadoop/hbase/regionserver/wal/CompressionContext.java</a></td>
 <td>0</td>
 <td>0</td>
@@ -9344,3511 +9334,3506 @@
 <td>0</td>
 <td>2</td></tr>
 <tr class="a">
-<td><a href="#org.apache.hadoop.hbase.regionserver.wal.SecureAsyncProtobufLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/SecureAsyncProtobufLogWriter.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>2</td></tr>
-<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogReader.java">org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SecureWALCellCodec.java">org/apache/hadoop/hbase/regionserver/wal/SecureWALCellCodec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SequenceIdAccounting.java">org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestAsyncFSWAL.java">org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWAL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestAsyncProtobufLog.java">org/apache/hadoop/hbase/regionserver/wal/TestAsyncProtobufLog.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestAsyncWALReplay.java">org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplay.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestCompressor.java">org/apache/hadoop/hbase/regionserver/wal/TestCompressor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestDurability.java">org/apache/hadoop/hbase/regionserver/wal/TestDurability.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestFSHLog.java">org/apache/hadoop/hbase/regionserver/wal/TestFSHLog.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestFSWALEntry.java">org/apache/hadoop/hbase/regionserver/wal/TestFSWALEntry.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestLogRollAbort.java">org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestLogRolling.java">org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestLogRollingNoCluster.java">org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestMetricsWAL.java">org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestMetricsWALSource.java">org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestMetricsWALSourceImpl.java">org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestProtobufLog.java">org/apache/hadoop/hbase/regionserver/wal/TestProtobufLog.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestWALReplay.java">org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALActionsListener.java">org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALCellCodec.java">org/apache/hadoop/hbase/regionserver/wal/WALCellCodec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALCoprocessorHost.java">org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALUtil.java">org/apache/hadoop/hbase/regionserver/wal/WALUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.BaseReplicationEndpoint.java">org/apache/hadoop/hbase/replication/BaseReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.BulkLoadCellFilter.java">org/apache/hadoop/hbase/replication/BulkLoadCellFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ChainWALEntryFilter.java">org/apache/hadoop/hbase/replication/ChainWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ClusterMarkingEntryFilter.java">org/apache/hadoop/hbase/replication/ClusterMarkingEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.HBaseReplicationEndpoint.java">org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.NamespaceTableCfWALEntryFilter.java">org/apache/hadoop/hbase/replication/NamespaceTableCfWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationEndpoint.java">org/apache/hadoop/hbase/replication/ReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationException.java">org/apache/hadoop/hbase/replication/ReplicationException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationFactory.java">org/apache/hadoop/hbase/replication/ReplicationFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeerConfig.java">org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeerZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationPeerZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeers.java">org/apache/hadoop/hbase/replication/ReplicationPeers.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeersZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueueInfo.java">org/apache/hadoop/hbase/replication/ReplicationQueueInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueues.java">org/apache/hadoop/hbase/replication/ReplicationQueues.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueuesClient.java">org/apache/hadoop/hbase/replication/ReplicationQueuesClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueuesClientZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationQueuesClientZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueuesZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationStateZKBase.java">org/apache/hadoop/hbase/replication/ReplicationStateZKBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationTableBase.java">org/apache/hadoop/hbase/replication/ReplicationTableBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationTracker.java">org/apache/hadoop/hbase/replication/ReplicationTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationTrackerZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ScopeWALEntryFilter.java">org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.SystemTableWALEntryFilter.java">org/apache/hadoop/hbase/replication/SystemTableWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TableBasedReplicationQueuesClientImpl.java">org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesClientImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TableBasedReplicationQueuesImpl.java">org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestMasterReplication.java">org/apache/hadoop/hbase/replication/TestMasterReplication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestMultiSlaveReplication.java">org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestPerTableCFReplication.java">org/apache/hadoop/hbase/replication/TestPerTableCFReplication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationBase.java">org/apache/hadoop/hbase/replication/TestReplicationBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationChangingPeerRegionservers.java">org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationDisableInactivePeer.java">org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationDroppedTables.java">org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationEndpoint.java">org/apache/hadoop/hbase/replication/TestReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSCompressed.java">org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationKillRS.java">org/apache/hadoop/hbase/replication/TestReplicationKillRS.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationSmallTests.java">org/apache/hadoop/hbase/replication/TestReplicationSmallTests.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>26</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationSource.java">org/apache/hadoop/hbase/replication/TestReplicationSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationStateBasic.java">org/apache/hadoop/hbase/replication/TestReplicationStateBasic.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationStateHBaseImpl.java">org/apache/hadoop/hbase/replication/TestReplicationStateHBaseImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>25</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationStatus.java">org/apache/hadoop/hbase/replication/TestReplicationStatus.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationSyncUpTool.java">org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationSyncUpToolWithBulkLoadedData.java">org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationTableBase.java">org/apache/hadoop/hbase/replication/TestReplicationTableBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationWALEntryFilters.java">org/apache/hadoop/hbase/replication/TestReplicationWALEntryFilters.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationWithTags.java">org/apache/hadoop/hbase/replication/TestReplicationWithTags.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.WALCellFilter.java">org/apache/hadoop/hbase/replication/WALCellFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.WALEntryFilter.java">org/apache/hadoop/hbase/replication/WALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner.java">org/apache/hadoop/hbase/replication/master/ReplicationHFileCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner.java">org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.master.TestTableCFsUpdater.java">org/apache/hadoop/hbase/replication/master/TestTableCFsUpdater.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.DumpReplicationQueues.java">org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint.java">org/apache/hadoop/hbase/replication/regionserver/HBaseInterClusterReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.HFileReplicator.java">org/apache/hadoop/hbase/replication/regionserver/HFileReplicator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationGlobalSourceSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSinkSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSourceSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSourceSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsSink.java">org/apache/hadoop/hbase/replication/regionserver/MetricsSink.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.RecoveredReplicationSource.java">org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.RecoveredReplicationSourceShipper.java">org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSourceShipper.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.RecoveredReplicationSourceWALReader.java">org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSourceWALReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.RegionReplicaReplicationEndpoint.java">org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.Replication.java">org/apache/hadoop/hbase/replication/regionserver/Replication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationLoad.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationObserver.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationObserver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSink.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSinkManager.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSource.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceFactory.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceInterface.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceManager.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceShipper.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceWALReader.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationThrottler.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationThrottler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestMetricsReplicationSourceFactory.java">org/apache/hadoop/hbase/replication/regionserver/TestMetricsReplicationSourceFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestMetricsReplicationSourceFactoryImpl.java">org/apache/hadoop/hbase/replication/regionserver/TestMetricsReplicationSourceFactoryImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestMetricsReplicationSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/TestMetricsReplicationSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestRegionReplicaReplicationEndpoint.java">org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestRegionReplicaReplicationEndpointNoMaster.java">org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpointNoMaster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestReplicationSink.java">org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestReplicationSinkManager.java">org/apache/hadoop/hbase/replication/regionserver/TestReplicationSinkManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestReplicationSourceManager.java">org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestReplicationSourceManagerZkImpl.java">org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManagerZkImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestReplicator.java">org/apache/hadoop/hbase/replication/regionserver/TestReplicator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestWALEntryStream.java">org/apache/hadoop/hbase/replication/regionserver/TestWALEntryStream.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.WALEntryStream.java">org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.Constants.java">org/apache/hadoop/hbase/rest/Constants.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.ExistsResource.java">org/apache/hadoop/hbase/rest/ExistsResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.HBaseRESTTestingUtility.java">org/apache/hadoop/hbase/rest/HBaseRESTTestingUtility.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.MetricsREST.java">org/apache/hadoop/hbase/rest/MetricsREST.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.MetricsRESTSource.java">org/apache/hadoop/hbase/rest/MetricsRESTSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.MetricsRESTSourceImpl.java">org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.MultiRowResource.java">org/apache/hadoop/hbase/rest/MultiRowResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.NamespacesInstanceResource.java">org/apache/hadoop/hbase/rest/NamespacesInstanceResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.NamespacesResource.java">org/apache/hadoop/hbase/rest/NamespacesResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.PerformanceEvaluation.java">org/apache/hadoop/hbase/rest/PerformanceEvaluation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.ProtobufMessageHandler.java">org/apache/hadoop/hbase/rest/ProtobufMessageHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.RESTServer.java">org/apache/hadoop/hbase/rest/RESTServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.RESTServlet.java">org/apache/hadoop/hbase/rest/RESTServlet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.RESTServletContainer.java">org/apache/hadoop/hbase/rest/RESTServletContainer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.RegionsResource.java">org/apache/hadoop/hbase/rest/RegionsResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.ResourceBase.java">org/apache/hadoop/hbase/rest/ResourceBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.ResultGenerator.java">org/apache/hadoop/hbase/rest/ResultGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.RootResource.java">org/apache/hadoop/hbase/rest/RootResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.RowResource.java">org/apache/hadoop/hbase/rest/RowResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>61</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.RowResourceBase.java">org/apache/hadoop/hbase/rest/RowResourceBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.RowResultGenerator.java">org/apache/hadoop/hbase/rest/RowResultGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.RowSpec.java">org/apache/hadoop/hbase/rest/RowSpec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>32</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.ScannerInstanceResource.java">org/apache/hadoop/hbase/rest/ScannerInstanceResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.ScannerResource.java">org/apache/hadoop/hbase/rest/ScannerResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.ScannerResultGenerator.java">org/apache/hadoop/hbase/rest/ScannerResultGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.SchemaResource.java">org/apache/hadoop/hbase/rest/SchemaResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.StorageClusterStatusResource.java">org/apache/hadoop/hbase/rest/StorageClusterStatusResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.StorageClusterVersionResource.java">org/apache/hadoop/hbase/rest/StorageClusterVersionResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.TableResource.java">org/apache/hadoop/hbase/rest/TableResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.TableScanResource.java">org/apache/hadoop/hbase/rest/TableScanResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.TestGZIPResponseWrapper.java">org/apache/hadoop/hbase/rest/TestGZIPResponseWrapper.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.TestGetAndPutResource.java">org/apache/hadoop/hbase/rest/TestGetAndPutResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.TestGzipFilter.java">org/apache/hadoop/hbase/rest/TestGzipFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.TestMetricsRESTSource.java">org/apache/hadoop/hbase/rest/TestMetricsRESTSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.TestMetricsRESTSourceImpl.java">org/apache/hadoop/hbase/rest/TestMetricsRESTSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.TestMultiRowResource.java">org/apache/hadoop/hbase/rest/TestMultiRowResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.TestNamespacesInstanceResource.java">org/apache/hadoop/hbase/rest/TestNamespacesInstanceResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.TestNamespacesResource.java">org/apache/hadoop/hbase/rest/TestNamespacesResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.TestScannerResource.java">org/apache/hadoop/hbase/rest/TestScannerResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.TestScannersWithFilters.java">org/apache/hadoop/hbase/rest/TestScannersWithFilters.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>145</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.TestScannersWithLabels.java">org/apache/hadoop/hbase/rest/TestScannersWithLabels.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.TestSchemaResource.java">org/apache/hadoop/hbase/rest/TestSchemaResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.TestStatusResource.java">org/apache/hadoop/hbase/rest/TestStatusResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.TestTableResource.java">org/apache/hadoop/hbase/rest/TestTableResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.TestTableScan.java">org/apache/hadoop/hbase/rest/TestTableScan.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.TestVersionResource.java">org/apache/hadoop/hbase/rest/TestVersionResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.VersionResource.java">org/apache/hadoop/hbase/rest/VersionResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.client.Client.java">org/apache/hadoop/hbase/rest/client/Client.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>29</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.client.RemoteAdmin.java">org/apache/hadoop/hbase/rest/client/RemoteAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>107</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.client.RemoteHTable.java">org/apache/hadoop/hbase/rest/client/RemoteHTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>118</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.client.Response.java">org/apache/hadoop/hbase/rest/client/Response.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.client.TestRemoteHTableRetries.java">org/apache/hadoop/hbase/rest/client/TestRemoteHTableRetries.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.client.TestRemoteTable.java">org/apache/hadoop/hbase/rest/client/TestRemoteTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.filter.GZIPRequestStream.java">org/apache/hadoop/hbase/rest/filter/GZIPRequestStream.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.filter.GZIPResponseStream.java">org/apache/hadoop/hbase/rest/filter/GZIPResponseStream.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.filter.GzipFilter.java">org/apache/hadoop/hbase/rest/filter/GzipFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.filter.RestCsrfPreventionFilter.java">org/apache/hadoop/hbase/rest/filter/RestCsrfPreventionFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.model.CellModel.java">org/apache/hadoop/hbase/rest/model/CellModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.model.CellSetModel.java">org/apache/hadoop/hbase/rest/model/CellSetModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.model.ColumnSchemaModel.java">org/apache/hadoop/hbase/rest/model/ColumnSchemaModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.model.NamespacesInstanceModel.java">org/apache/hadoop/hbase/rest/model/NamespacesInstanceModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.model.NamespacesModel.java">org/apache/hadoop/hbase/rest/model/NamespacesModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.model.RowModel.java">org/apache/hadoop/hbase/rest/model/RowModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.model.ScannerModel.java">org/apache/hadoop/hbase/rest/model/ScannerModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>123</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.model.StorageClusterStatusModel.java">org/apache/hadoop/hbase/rest/model/StorageClusterStatusModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.model.TableInfoModel.java">org/apache/hadoop/hbase/rest/model/TableInfoModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.model.TableListModel.java">org/apache/hadoop/hbase/rest/model/TableListModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.model.TableModel.java">org/apache/hadoop/hbase/rest/model/TableModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.model.TableRegionModel.java">org/apache/hadoop/hbase/rest/model/TableRegionModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.model.TableSchemaModel.java">org/apache/hadoop/hbase/rest/model/TableSchemaModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.model.TestModelBase.java">org/apache/hadoop/hbase/rest/model/TestModelBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.model.TestStorageClusterStatusModel.java">org/apache/hadoop/hbase/rest/model/TestStorageClusterStatusModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.model.TestTableRegionModel.java">org/apache/hadoop/hbase/rest/model/TestTableRegionModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.model.TestVersionModel.java">org/apache/hadoop/hbase/rest/model/TestVersionModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.model.VersionModel.java">org/apache/hadoop/hbase/rest/model/VersionModel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.provider.JAXBContextResolver.java">org/apache/hadoop/hbase/rest/provider/JAXBContextResolver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.provider.consumer.ProtobufMessageBodyConsumer.java">org/apache/hadoop/hbase/rest/provider/consumer/ProtobufMessageBodyConsumer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.provider.producer.PlainTextMessageBodyProducer.java">org/apache/hadoop/hbase/rest/provider/producer/PlainTextMessageBodyProducer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.provider.producer.ProtobufMessageBodyProducer.java">org/apache/hadoop/hbase/rest/provider/producer/ProtobufMessageBodyProducer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.IntegrationTestRSGroup.java">org/apache/hadoop/hbase/rsgroup/IntegrationTestRSGroup.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.RSGroupAdmin.java">org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.RSGroupAdminClient.java">org/apache/hadoop/hbase/rsgroup/RSGroupAdminClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.java">org/apache/hadoop/hbase/rsgroup/RSGroupAdminEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.java">org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.RSGroupBasedLoadBalancer.java">org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.RSGroupInfo.java">org/apache/hadoop/hbase/rsgroup/RSGroupInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager.java">org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.RSGroupInfoManagerImpl.java">org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.RSGroupProtobufUtil.java">org/apache/hadoop/hbase/rsgroup/RSGroupProtobufUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.RSGroupableBalancer.java">org/apache/hadoop/hbase/rsgroup/RSGroupableBalancer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.TestRSGroups.java">org/apache/hadoop/hbase/rsgroup/TestRSGroups.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.TestRSGroupsBase.java">org/apache/hadoop/hbase/rsgroup/TestRSGroupsBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.TestRSGroupsOfflineMode.java">org/apache/hadoop/hbase/rsgroup/TestRSGroupsOfflineMode.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.Utility.java">org/apache/hadoop/hbase/rsgroup/Utility.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rsgroup.VerifyingRSGroupAdminClient.java">org/apache/hadoop/hbase/rsgroup/VerifyingRSGroupAdminClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.AbstractHBaseSaslRpcClient.java">org/apache/hadoop/hbase/security/AbstractHBaseSaslRpcClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.AccessDeniedException.java">org/apache/hadoop/hbase/security/AccessDeniedException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.AuthMethod.java">org/apache/hadoop/hbase/security/AuthMethod.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.CryptoAESUnwrapHandler.java">org/apache/hadoop/hbase/security/CryptoAESUnwrapHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.CryptoAESWrapHandler.java">org/apache/hadoop/hbase/security/CryptoAESWrapHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.EncryptionUtil.java">org/apache/hadoop/hbase/security/EncryptionUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.HBaseKerberosUtils.java">org/apache/hadoop/hbase/security/HBaseKerberosUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.HBasePolicyProvider.java">org/apache/hadoop/hbase/security/HBasePolicyProvider.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.HBaseSaslRpcClient.java">org/apache/hadoop/hbase/security/HBaseSaslRpcClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.HBaseSaslRpcServer.java">org/apache/hadoop/hbase/security/HBaseSaslRpcServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.HadoopSecurityEnabledUserProviderForTesting.java">org/apache/hadoop/hbase/security/HadoopSecurityEnabledUserProviderForTesting.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.NettyHBaseRpcConnectionHeaderHandler.java">org/apache/hadoop/hbase/security/NettyHBaseRpcConnectionHeaderHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClient.java">org/apache/hadoop/hbase/security/NettyHBaseSaslRpcClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.NettyHBaseSaslRpcClientHandler.java">org/apache/hadoop/hbase/security/NettyHBaseSaslRpcClientHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.SaslChallengeDecoder.java">org/apache/hadoop/hbase/security/SaslChallengeDecoder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.SaslStatus.java">org/apache/hadoop/hbase/security/SaslStatus.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.SaslUnwrapHandler.java">org/apache/hadoop/hbase/security/SaslUnwrapHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.SaslUtil.java">org/apache/hadoop/hbase/security/SaslUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.SaslWrapHandler.java">org/apache/hadoop/hbase/security/SaslWrapHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.SecurityInfo.java">org/apache/hadoop/hbase/security/SecurityInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.SecurityUtil.java">org/apache/hadoop/hbase/security/SecurityUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.Superusers.java">org/apache/hadoop/hbase/security/Superusers.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.TestHBaseSaslRpcClient.java">org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.TestSaslUtil.java">org/apache/hadoop/hbase/security/TestSaslUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.TestSecureIPC.java">org/apache/hadoop/hbase/security/TestSecureIPC.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.TestUser.java">org/apache/hadoop/hbase/security/TestUser.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.TestUsersOperationsWithSecureHadoop.java">org/apache/hadoop/hbase/security/TestUsersOperationsWithSecureHadoop.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.User.java">org/apache/hadoop/hbase/security/User.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.UserProvider.java">org/apache/hadoop/hbase/security/UserProvider.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.AccessControlClient.java">org/apache/hadoop/hbase/security/access/AccessControlClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>49</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.AccessControlConstants.java">org/apache/hadoop/hbase/security/access/AccessControlConstants.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.AccessControlFilter.java">org/apache/hadoop/hbase/security/access/AccessControlFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.AccessControlLists.java">org/apache/hadoop/hbase/security/access/AccessControlLists.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.AccessControlUtil.java">org/apache/hadoop/hbase/security/access/AccessControlUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>42</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.AccessController.java">org/apache/hadoop/hbase/security/access/AccessController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>39</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.AuthResult.java">org/apache/hadoop/hbase/security/access/AuthResult.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.Permission.java">org/apache/hadoop/hbase/security/access/Permission.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint.java">org/apache/hadoop/hbase/security/access/SecureBulkLoadEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.SecureTestUtil.java">org/apache/hadoop/hbase/security/access/SecureTestUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.ShadedAccessControlUtil.java">org/apache/hadoop/hbase/security/access/ShadedAccessControlUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>50</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.TableAuthManager.java">org/apache/hadoop/hbase/security/access/TableAuthManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>43</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.TablePermission.java">org/apache/hadoop/hbase/security/access/TablePermission.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.TestAccessControlFilter.java">org/apache/hadoop/hbase/security/access/TestAccessControlFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.TestAccessController.java">org/apache/hadoop/hbase/security/access/TestAccessController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.TestAccessController2.java">org/apache/hadoop/hbase/security/access/TestAccessController2.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.TestCellACLWithMultipleVersions.java">org/apache/hadoop/hbase/security/access/TestCellACLWithMultipleVersions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.TestCellACLs.java">org/apache/hadoop/hbase/security/access/TestCellACLs.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.TestNamespaceCommands.java">org/apache/hadoop/hbase/security/access/TestNamespaceCommands.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.TestScanEarlyTermination.java">org/apache/hadoop/hbase/security/access/TestScanEarlyTermination.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.TestTablePermissions.java">org/apache/hadoop/hbase/security/access/TestTablePermissions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.TestWithDisabledAuthorization.java">org/apache/hadoop/hbase/security/access/TestWithDisabledAuthorization.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.TestZKPermissionWatcher.java">org/apache/hadoop/hbase/security/access/TestZKPermissionWatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.access.UserPermission.java">org/apache/hadoop/hbase/security/access/UserPermission.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.access.ZKPermissionWatcher.java">org/apache/hadoop/hbase/security/access/ZKPermissionWatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.token.AuthenticationKey.java">org/apache/hadoop/hbase/security/token/AuthenticationKey.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.token.AuthenticationTokenIdentifier.java">org/apache/hadoop/hbase/security/token/AuthenticationTokenIdentifier.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.token.AuthenticationTokenSecretManager.java">org/apache/hadoop/hbase/security/token/AuthenticationTokenSecretManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.token.AuthenticationTokenSelector.java">org/apache/hadoop/hbase/security/token/AuthenticationTokenSelector.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.token.FsDelegationToken.java">org/apache/hadoop/hbase/security/token/FsDelegationToken.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.token.SecureTestCluster.java">org/apache/hadoop/hbase/security/token/SecureTestCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.token.TestTokenAuthentication.java">org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.token.TestZKSecretWatcher.java">org/apache/hadoop/hbase/security/token/TestZKSecretWatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.token.TokenProvider.java">org/apache/hadoop/hbase/security/token/TokenProvider.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.token.TokenUtil.java">org/apache/hadoop/hbase/security/token/TokenUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.token.ZKSecretWatcher.java">org/apache/hadoop/hbase/security/token/ZKSecretWatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.CellVisibility.java">org/apache/hadoop/hbase/security/visibility/CellVisibility.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.DefaultVisibilityLabelServiceImpl.java">org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.DefinedSetFilterScanLabelGenerator.java">org/apache/hadoop/hbase/security/visibility/DefinedSetFilterScanLabelGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.EnforcingScanLabelGenerator.java">org/apache/hadoop/hbase/security/visibility/EnforcingScanLabelGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.ExpAsStringVisibilityLabelServiceImpl.java">org/apache/hadoop/hbase/security/visibility/ExpAsStringVisibilityLabelServiceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.ExpressionExpander.java">org/apache/hadoop/hbase/security/visibility/ExpressionExpander.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.ExpressionParser.java">org/apache/hadoop/hbase/security/visibility/ExpressionParser.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.FeedUserAuthScanLabelGenerator.java">org/apache/hadoop/hbase/security/visibility/FeedUserAuthScanLabelGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.LabelFilteringScanLabelGenerator.java">org/apache/hadoop/hbase/security/visibility/LabelFilteringScanLabelGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.LoadTestDataGeneratorWithVisibilityLabels.java">org/apache/hadoop/hbase/security/visibility/LoadTestDataGeneratorWithVisibilityLabels.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.ScanLabelGenerator.java">org/apache/hadoop/hbase/security/visibility/ScanLabelGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.SimpleScanLabelGenerator.java">org/apache/hadoop/hbase/security/visibility/SimpleScanLabelGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestExpressionExpander.java">org/apache/hadoop/hbase/security/visibility/TestExpressionExpander.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestExpressionParser.java">org/apache/hadoop/hbase/security/visibility/TestExpressionParser.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestVisibilityLabels.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabels.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>20</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsOpWithDifferentUsersNoACL.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsOpWithDifferentUsersNoACL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsReplication.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsReplication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithACL.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsWithACL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithCustomVisLabService.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsWithCustomVisLabService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithDefaultVisLabelService.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsWithDefaultVisLabelService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithDeletes.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsWithDeletes.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>201</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestVisibilityLablesWithGroups.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLablesWithGroups.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestVisibilityWithCheckAuths.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityWithCheckAuths.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.TestWithDisabledAuthorization.java">org/apache/hadoop/hbase/security/visibility/TestWithDisabledAuthorization.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityClient.java">org/apache/hadoop/hbase/security/visibility/VisibilityClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>85</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityConstants.java">org/apache/hadoop/hbase/security/visibility/VisibilityConstants.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityController.java">org/apache/hadoop/hbase/security/visibility/VisibilityController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityExpEvaluator.java">org/apache/hadoop/hbase/security/visibility/VisibilityExpEvaluator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityLabelFilter.java">org/apache/hadoop/hbase/security/visibility/VisibilityLabelFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityLabelService.java">org/apache/hadoop/hbase/security/visibility/VisibilityLabelService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityLabelServiceManager.java">org/apache/hadoop/hbase/security/visibility/VisibilityLabelServiceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityLabelsCache.java">org/apache/hadoop/hbase/security/visibility/VisibilityLabelsCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityLabelsValidator.java">org/apache/hadoop/hbase/security/visibility/VisibilityLabelsValidator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityNewVersionBehaivorTracker.java">org/apache/hadoop/hbase/security/visibility/VisibilityNewVersionBehaivorTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityReplication.java">org/apache/hadoop/hbase/security/visibility/VisibilityReplication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityReplicationEndpoint.java">org/apache/hadoop/hbase/security/visibility/VisibilityReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityScanDeleteTracker.java">org/apache/hadoop/hbase/security/visibility/VisibilityScanDeleteTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityTestUtil.java">org/apache/hadoop/hbase/security/visibility/VisibilityTestUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.VisibilityUtils.java">org/apache/hadoop/hbase/security/visibility/VisibilityUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.security.visibility.ZKVisibilityLabelWatcher.java">org/apache/hadoop/hbase/security/visibility/ZKVisibilityLabelWatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil.java">org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>195</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.shaded.protobuf.RequestConverter.java">org/apache/hadoop/hbase/shaded/protobuf/RequestConverter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>114</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.shaded.protobuf.ResponseConverter.java">org/apache/hadoop/hbase/shaded/protobuf/ResponseConverter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.shaded.protobuf.TestProtobufUtil.java">org/apache/hadoop/hbase/shaded/protobuf/TestProtobufUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils.java">org/apache/hadoop/hbase/snapshot/ClientSnapshotDescriptionUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException.java">org/apache/hadoop/hbase/snapshot/CorruptedSnapshotException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.CreateSnapshot.java">org/apache/hadoop/hbase/snapshot/CreateSnapshot.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>43</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.ExportSnapshot.java">org/apache/hadoop/hbase/snapshot/ExportSnapshot.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.HBaseSnapshotException.java">org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils.java">org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.RestoreSnapshotException.java">org/apache/hadoop/hbase/snapshot/RestoreSnapshotException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.RestoreSnapshotHelper.java">org/apache/hadoop/hbase/snapshot/RestoreSnapshotHelper.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.SnapshotCreationException.java">org/apache/hadoop/hbase/snapshot/SnapshotCreationException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.SnapshotDescriptionUtils.java">org/apache/hadoop/hbase/snapshot/SnapshotDescriptionUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.SnapshotDoesNotExistException.java">org/apache/hadoop/hbase/snapshot/SnapshotDoesNotExistException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.SnapshotExistsException.java">org/apache/hadoop/hbase/snapshot/SnapshotExistsException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.SnapshotInfo.java">org/apache/hadoop/hbase/snapshot/SnapshotInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.SnapshotManifest.java">org/apache/hadoop/hbase/snapshot/SnapshotManifest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.SnapshotManifestV2.java">org/apache/hadoop/hbase/snapshot/SnapshotManifestV2.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils.java">org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>29</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TablePartiallyOpenException.java">org/apache/hadoop/hbase/snapshot/TablePartiallyOpenException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestExportSnapshot.java">org/apache/hadoop/hbase/snapshot/TestExportSnapshot.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestExportSnapshotHelpers.java">org/apache/hadoop/hbase/snapshot/TestExportSnapshotHelpers.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestFlushSnapshotFromClient.java">org/apache/hadoop/hbase/snapshot/TestFlushSnapshotFromClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestMobExportSnapshot.java">org/apache/hadoop/hbase/snapshot/TestMobExportSnapshot.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestMobRestoreSnapshotHelper.java">org/apache/hadoop/hbase/snapshot/TestMobRestoreSnapshotHelper.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestMobSecureExportSnapshot.java">org/apache/hadoop/hbase/snapshot/TestMobSecureExportSnapshot.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestRegionSnapshotTask.java">org/apache/hadoop/hbase/snapshot/TestRegionSnapshotTask.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestRestoreSnapshotHelper.java">org/apache/hadoop/hbase/snapshot/TestRestoreSnapshotHelper.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestSecureExportSnapshot.java">org/apache/hadoop/hbase/snapshot/TestSecureExportSnapshot.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestSnapshotClientRetries.java">org/apache/hadoop/hbase/snapshot/TestSnapshotClientRetries.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestSnapshotDescriptionUtils.java">org/apache/hadoop/hbase/snapshot/TestSnapshotDescriptionUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.snapshot.TestSnapshotManifest.java">org/apache/hadoop/hbase/snapshot/TestSnapshotManifest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.spark.IntegrationTestSparkBulkLoad.java">org/apache/hadoop/hbase/spark/IntegrationTestSparkBulkLoad.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>23</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.spark.SparkSQLPushDownFilter.java">org/apache/hadoop/hbase/spark/SparkSQLPushDownFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.spark.TestJavaHBaseContext.java">org/apache/hadoop/hbase/spark/TestJavaHBaseContext.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseBulkDeleteExample.java">org/apache/hadoop/hbase/spark/example/hbasecontext/JavaHBaseBulkDeleteExample.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseBulkLoadExample.java">org/apache/hadoop/hbase/spark/example/hbasecontext/JavaHBaseBulkLoadExample.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.spark.example.hbasecontext.JavaHBaseMapGetPutExample.java">org/apache/hadoop/hbase/spark/example/hbasecontext/JavaHBaseMapGetPutExample.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.test.IntegrationTestBigLinkedList.java">org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>33</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.test.IntegrationTestBigLinkedListWithVisibility.java">org/apache/hadoop/hbase/test/IntegrationTestBigLinkedListWithVisibility.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.test.IntegrationTestLoadAndVerify.java">org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>76</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.test.IntegrationTestReplication.java">org/apache/hadoop/hbase/test/IntegrationTestReplication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.test.IntegrationTestTimeBoundedMultiGetRequestsWithRegionReplicas.java">org/apache/hadoop/hbase/test/IntegrationTestTimeBoundedMultiGetRequestsWithRegionReplicas.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.test.IntegrationTestTimeBoundedRequestsWithRegionReplicas.java">org/apache/hadoop/hbase/test/IntegrationTestTimeBoundedRequestsWithRegionReplicas.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.test.IntegrationTestWithCellVisibilityLoadAndVerify.java">org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.test.IntegrationTestZKAndFSPermissions.java">org/apache/hadoop/hbase/test/IntegrationTestZKAndFSPermissions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.test.MetricsAssertHelperImpl.java">org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.testclassification.ClientTests.java">org/apache/hadoop/hbase/testclassification/ClientTests.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.DemoClient.java">org/apache/hadoop/hbase/thrift/DemoClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>250</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift.ErrorThrowingGetObserver.java">org/apache/hadoop/hbase/thrift/ErrorThrowingGetObserver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.HThreadedSelectorServerArgs.java">org/apache/hadoop/hbase/thrift/HThreadedSelectorServerArgs.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift.HbaseHandlerMetricsProxy.java">org/apache/hadoop/hbase/thrift/HbaseHandlerMetricsProxy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.HttpDoAsClient.java">org/apache/hadoop/hbase/thrift/HttpDoAsClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift.IncrementCoalescer.java">org/apache/hadoop/hbase/thrift/IncrementCoalescer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.MetricsThriftServerSource.java">org/apache/hadoop/hbase/thrift/MetricsThriftServerSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift.MetricsThriftServerSourceFactory.java">org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.MetricsThriftServerSourceImpl.java">org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift.TBoundedThreadPoolServer.java">org/apache/hadoop/hbase/thrift/TBoundedThreadPoolServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.TestCallQueue.java">org/apache/hadoop/hbase/thrift/TestCallQueue.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift.TestMetricsThriftServerSourceFactory.java">org/apache/hadoop/hbase/thrift/TestMetricsThriftServerSourceFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.TestMetricsThriftServerSourceFactoryImpl.java">org/apache/hadoop/hbase/thrift/TestMetricsThriftServerSourceFactoryImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift.TestThriftHttpServer.java">org/apache/hadoop/hbase/thrift/TestThriftHttpServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.TestThriftServer.java">org/apache/hadoop/hbase/thrift/TestThriftServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>35</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift.TestThriftServerCmdLine.java">org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.ThriftHttpServlet.java">org/apache/hadoop/hbase/thrift/ThriftHttpServlet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift.ThriftMetrics.java">org/apache/hadoop/hbase/thrift/ThriftMetrics.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.ThriftServer.java">org/apache/hadoop/hbase/thrift/ThriftServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift.ThriftServerRunner.java">org/apache/hadoop/hbase/thrift/ThriftServerRunner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>22</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift.ThriftUtilities.java">org/apache/hadoop/hbase/thrift/ThriftUtilities.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.thrift2.DemoClient.java">org/apache/hadoop/hbase/thrift2/DemoClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.thrift2.T

<TRUNCATED>

[35/50] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
index 43b988e..dd577e0 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -200,55 +200,61 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkOnlineServersOnly-java.util.Set-">checkOnlineServersOnly</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkForDeadOrOnlineServers-java.util.Set-">checkForDeadOrOnlineServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Check if the set of servers are belong to dead servers list or online servers list.</div>
+</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkOnlineServersOnly-java.util.Set-">checkOnlineServersOnly</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#checkServersAndTables-java.util.Set-java.util.Set-java.lang.String-">checkServersAndTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroupName)</code>
 <div class="block">Check servers and tables.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#getAndCheckRSGroupInfo-java.lang.String-">getAndCheckRSGroupInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Check passed name.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#getRegions-org.apache.hadoop.hbase.net.Address-">getRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;server)</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#getRSGroupAssignmentsByTable-java.lang.String-">getRSGroupAssignmentsByTable</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#getRSGroupInfo-java.lang.String-">getRSGroupInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>
 <div class="block">Gets <code>RSGroupInfo</code> for given group name.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#getRSGroupInfoOfTable-org.apache.hadoop.hbase.TableName-">getRSGroupInfoOfTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Gets <code>RSGroupInfo</code> for the given table's group.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#getRSGroupOfServer-org.apache.hadoop.hbase.net.Address-">getRSGroupOfServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&nbsp;hostPort)</code>
 <div class="block">Retrieve the RSGroupInfo a server is affiliated to</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#listRSGroups--">listRSGroups</a></span>()</code>
 <div class="block">Lists current set of RegionServer groups.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#moveRegionsFromServers-java.util.Set-java.util.Set-java.lang.String-">moveRegionsFromServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
@@ -257,7 +263,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
  but should not be located there.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#moveRegionsToServers-java.util.Set-java.util.Set-java.lang.String-">moveRegionsToServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
@@ -266,14 +272,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
  but currently they are located on other servers.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#moveServers-java.util.Set-java.lang.String-">moveServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroupName)</code>
 <div class="block">Move given set of servers to the specified target RegionServer group.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#moveServersAndTables-java.util.Set-java.util.Set-java.lang.String-">moveServersAndTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
@@ -281,20 +287,26 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <div class="block">Move given set of servers and tables to the specified target RegionServer group.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#moveTables-java.util.Set-java.lang.String-">moveTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;tables,
           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;targetGroup)</code>
 <div class="block">Move given set of tables to the specified target RegionServer group.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#removeRSGroup-java.lang.String-">removeRSGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Removes RegionServer group associated with the given name.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Remove decommissioned servers from rsgroup.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#rsGroupGetRegionsInTransition-java.lang.String-">rsGroupGetRegionsInTransition</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)</code>&nbsp;</td>
 </tr>
@@ -692,13 +704,37 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 </dl>
 </li>
 </ul>
+<a name="removeServers-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.587">removeServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#removeServers-java.util.Set-">RSGroupAdmin</a></code></span></div>
+<div class="block">Remove decommissioned servers from rsgroup.
+ 1. Sometimes we may find the server aborted due to some hardware failure and we must offline
+ the server for repairing. Or we need to move some servers to join other clusters.
+ So we need to remove these servers from the rsgroup.
+ 2. Dead/recovering/live servers will be disallowed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html#removeServers-java.util.Set-">removeServers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupAdmin</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>servers</code> - set of servers to remove</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="rsGroupGetRegionsInTransition-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>rsGroupGetRegionsInTransition</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.586">rsGroupGetRegionsInTransition</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.html" title="class in org.apache.hadoop.hbase.master">RegionState</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.609">rsGroupGetRegionsInTransition</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -709,10 +745,10 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 <a name="getRSGroupAssignmentsByTable-java.lang.String-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupAssignmentsByTable</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.602">getRSGroupAssignmentsByTable</a>(<a href="http://docs.oracle.com/jav
 ase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.625">getRSGroupAssignmentsByTable</a>(<a href="http://docs.oracle.com/jav
 ase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                                                                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -720,6 +756,23 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupAdmin.
 </dl>
 </li>
 </ul>
+<a name="checkForDeadOrOnlineServers-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>checkForDeadOrOnlineServers</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#line.665">checkForDeadOrOnlineServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+                                  throws <a href="../../../../../org/apache/hadoop/hbase/constraint/ConstraintException.html" title="class in org.apache.hadoop.hbase.constraint">ConstraintException</a></pre>
+<div class="block">Check if the set of servers are belong to dead servers list or online servers list.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>servers</code> - servers to remove</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/constraint/ConstraintException.html" title="class in org.apache.hadoop.hbase.constraint">ConstraintException</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
index b7f59a7..7af947f 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -243,6 +243,12 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <div class="block">Remove a region server group.</div>
 </td>
 </tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Remove decommissioned servers from rsgroup</div>
+</td>
+</tr>
 </table>
 </li>
 </ul>
@@ -505,7 +511,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 <a name="moveServersAndTables-java.util.Set-java.util.Set-java.lang.String-java.lang.String-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>moveServersAndTables</h4>
 <pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.118">moveServersAndTables</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
@@ -525,6 +531,23 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgrou
 </dl>
 </li>
 </ul>
+<a name="removeServers-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeServers</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#line.125">removeServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block">Remove decommissioned servers from rsgroup</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>servers</code> - set of servers to remove</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
index 398677a..35b8175 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.653">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.679">RSGroupInfoManagerImpl.FailedOpenUpdaterThread</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a></pre>
 </li>
@@ -267,7 +267,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>waitInterval</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.654">waitInterval</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.680">waitInterval</a></pre>
 </li>
 </ul>
 <a name="hasChanged">
@@ -276,7 +276,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hasChanged</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.655">hasChanged</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.681">hasChanged</a></pre>
 </li>
 </ul>
 </li>
@@ -293,7 +293,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FailedOpenUpdaterThread</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.657">FailedOpenUpdaterThread</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.683">FailedOpenUpdaterThread</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 </li>
@@ -310,7 +310,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>serverAdded</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.664">serverAdded</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.690">serverAdded</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverAdded-org.apache.hadoop.hbase.ServerName-">ServerListener</a></code></span></div>
 <div class="block">The server has joined the cluster.</div>
 <dl>
@@ -327,7 +327,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>serverRemoved</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.669">serverRemoved</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.695">serverRemoved</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">ServerListener</a></code></span></div>
 <div class="block">The server was removed from the cluster.</div>
 <dl>
@@ -344,7 +344,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.673">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.699">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -359,7 +359,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockListLast">
 <li class="blockList">
 <h4>serverChanged</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.706">serverChanged</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.FailedOpenUpdaterThread.html#line.732">serverChanged</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
index dfc7851..eac7319 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.714">RSGroupInfoManagerImpl.RSGroupStartupWorker</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.740">RSGroupInfoManagerImpl.RSGroupStartupWorker</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></pre>
 </li>
 </ul>
@@ -255,7 +255,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.715">LOG</a></pre>
+<pre>private final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.741">LOG</a></pre>
 </li>
 </ul>
 <a name="online">
@@ -264,7 +264,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>online</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.716">online</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.742">online</a></pre>
 </li>
 </ul>
 </li>
@@ -281,7 +281,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSGroupStartupWorker</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.718">RSGroupStartupWorker</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.744">RSGroupStartupWorker</a>()</pre>
 </li>
 </ul>
 </li>
@@ -298,7 +298,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.723">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.749">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -313,7 +313,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForGroupTableOnline</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.730">waitForGroupTableOnline</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.756">waitForGroupTableOnline</a>()</pre>
 </li>
 </ul>
 <a name="createRSGroupTable--">
@@ -322,7 +322,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>createRSGroupTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.839">createRSGroupTable</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.865">createRSGroupTable</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -336,7 +336,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isOnline</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.864">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.RSGroupStartupWorker.html#line.890">isOnline</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
index da448c7..9adb634 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.600">RSGroupInfoManagerImpl.ServerEventsListenerThread</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.626">RSGroupInfoManagerImpl.ServerEventsListenerThread</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html" title="interface in org.apache.hadoop.hbase.master">ServerListener</a></pre>
 <div class="block">Calls <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateDefaultServers-java.util.SortedSet-"><code>RSGroupInfoManagerImpl.updateDefaultServers(SortedSet)</code></a> to update list of known
@@ -271,7 +271,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.601">LOG</a></pre>
+<pre>private final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.627">LOG</a></pre>
 </li>
 </ul>
 <a name="changed">
@@ -280,7 +280,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockListLast">
 <li class="blockList">
 <h4>changed</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.602">changed</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.628">changed</a></pre>
 </li>
 </ul>
 </li>
@@ -297,7 +297,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ServerEventsListenerThread</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.604">ServerEventsListenerThread</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.630">ServerEventsListenerThread</a>()</pre>
 </li>
 </ul>
 </li>
@@ -314,7 +314,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>serverAdded</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.609">serverAdded</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.635">serverAdded</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverAdded-org.apache.hadoop.hbase.ServerName-">ServerListener</a></code></span></div>
 <div class="block">The server has joined the cluster.</div>
 <dl>
@@ -331,7 +331,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>serverRemoved</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.614">serverRemoved</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.640">serverRemoved</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/ServerListener.html#serverRemoved-org.apache.hadoop.hbase.ServerName-">ServerListener</a></code></span></div>
 <div class="block">The server was removed from the cluster.</div>
 <dl>
@@ -348,7 +348,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockList">
 <li class="blockList">
 <h4>serverChanged</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.618">serverChanged</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.644">serverChanged</a>()</pre>
 </li>
 </ul>
 <a name="run--">
@@ -357,7 +357,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/ServerListener
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.624">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.ServerEventsListenerThread.html#line.650">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/a5c4dca3/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
index 266d8c1..287ea49 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":9,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":9,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -401,31 +401,37 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 </td>
 </tr>
 <tr id="i23" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#removeServers-java.util.Set-">removeServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>
+<div class="block">Remove decommissioned servers from rsgroup</div>
+</td>
+</tr>
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#resetRSGroupAndTableMaps-java.util.Map-java.util.Map-">resetRSGroupAndTableMaps</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;newRSGroupMap,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;newTableMap)</code>
 <div class="block">Make changes visible.</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#retrieveGroupListFromGroupTable--">retrieveGroupListFromGroupTable</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#retrieveGroupListFromZookeeper--">retrieveGroupListFromZookeeper</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateCacheOfRSGroups-java.util.Set-">updateCacheOfRSGroups</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;currentGroups)</code>
 <div class="block">Update cache of rsgroups.</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateDefaultServers-java.util.SortedSet-">updateDefaultServers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)</code>&nbsp;</td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#updateFailedAssignments--">updateFailedAssignments</a></span>()</code>&nbsp;</td>
 </tr>
@@ -822,13 +828,33 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 </dl>
 </li>
 </ul>
+<a name="removeServers-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.313">removeServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#removeServers-java.util.Set-">RSGroupInfoManager</a></code></span></div>
+<div class="block">Remove decommissioned servers from rsgroup</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#removeServers-java.util.Set-">removeServers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>servers</code> - set of servers to remove</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="retrieveGroupListFromGroupTable--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>retrieveGroupListFromGroupTable</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.312">retrieveGroupListFromGroupTable</a>()
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.338">retrieveGroupListFromGroupTable</a>()
                                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -842,7 +868,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>retrieveGroupListFromZookeeper</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.322">retrieveGroupListFromZookeeper</a>()
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.348">retrieveGroupListFromZookeeper</a>()
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -856,7 +882,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>refresh</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.347">refresh</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.373">refresh</a>()
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html#refresh--">RSGroupInfoManager</a></code></span></div>
 <div class="block">Refresh/reload the group information from the persistent store</div>
@@ -874,7 +900,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>refresh</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.355">refresh</a>(boolean&nbsp;forceOnline)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.381">refresh</a>(boolean&nbsp;forceOnline)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Read rsgroup info from the source of truth, the hbase:rsgroup table.
  Update zk cache. Called on startup of the manager.</div>
@@ -890,7 +916,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>flushConfigTable</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.413">flushConfigTable</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;groupMap)
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.439">flushConfigTable</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;groupMap)
                                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -904,7 +930,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>flushConfig</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.443">flushConfig</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.469">flushConfig</a>()
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -918,7 +944,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>flushConfig</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.448">flushConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;newGroupMap)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.474">flushConfig</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;newGroupMap)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -932,7 +958,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>resetRSGroupAndTableMaps</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.509">resetRSGroupAndTableMaps</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;newRSGroupMap,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.535">resetRSGroupAndTableMaps</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&gt;&nbsp;newRSGroupMap,
                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;newTableMap)</pre>
 <div class="block">Make changes visible.
  Caller must be synchronized on 'this'.</div>
@@ -944,7 +970,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCacheOfRSGroups</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.521">updateCacheOfRSGroups</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;currentGroups)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.547">updateCacheOfRSGroups</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;currentGroups)</pre>
 <div class="block">Update cache of rsgroups.
  Caller must be synchronized on 'this'.</div>
 <dl>
@@ -959,7 +985,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineRS</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.527">getOnlineRS</a>()
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.553">getOnlineRS</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -973,7 +999,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>getDefaultServers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.544">getDefaultServers</a>()
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.570">getDefaultServers</a>()
                                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -987,7 +1013,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDefaultServers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.566">updateDefaultServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.592">updateDefaultServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util">SortedSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1001,7 +1027,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFailedAssignments</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.575">updateFailedAssignments</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.601">updateFailedAssignments</a>()</pre>
 </li>
 </ul>
 <a name="isMasterRunning-org.apache.hadoop.hbase.master.MasterServices-">
@@ -1010,7 +1036,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>isMasterRunning</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.869">isMasterRunning</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;masterServices)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.895">isMasterRunning</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;masterServices)</pre>
 </li>
 </ul>
 <a name="multiMutate-java.util.List-">
@@ -1019,7 +1045,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockList">
 <li class="blockList">
 <h4>multiMutate</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.873">multiMutate</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;mutations)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.899">multiMutate</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;&nbsp;mutations)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1033,7 +1059,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoMa
 <ul class="blockListLast">
 <li class="blockList">
 <h4>checkGroupName</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.902">checkGroupName</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupInfoManagerImpl.html#line.928">checkGroupName</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;groupName)
                      throws <a href="../../../../../org/apache/hadoop/hbase/constraint/ConstraintException.html" title="class in org.apache.hadoop.hbase.constraint">ConstraintException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>