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 2021/05/06 20:19:00 UTC

[hbase-site] branch asf-site updated: Published site at 6309c090b520e9b2b1a7b6e7be11a2066b587202.

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hbase-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 7603cbb  Published site at 6309c090b520e9b2b1a7b6e7be11a2066b587202.
7603cbb is described below

commit 7603cbbfc88b368c46f69dcaf807e852263c6bbd
Author: jenkins <bu...@apache.org>
AuthorDate: Thu May 6 20:18:43 2021 +0000

    Published site at 6309c090b520e9b2b1a7b6e7be11a2066b587202.
---
 acid-semantics.html                                |    2 +-
 apache_hbase_reference_guide.pdf                   |    4 +-
 book.html                                          |    2 +-
 bulk-loads.html                                    |    2 +-
 checkstyle-aggregate.html                          |  190 +-
 checkstyle.rss                                     |   16 +-
 coc.html                                           |    2 +-
 dependencies.html                                  |    2 +-
 dependency-convergence.html                        |    2 +-
 dependency-info.html                               |    2 +-
 dependency-management.html                         |    2 +-
 devapidocs/constant-values.html                    |   19 +
 devapidocs/index-all.html                          |   20 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |    4 +-
 .../apache/hadoop/hbase/client/package-tree.html   |   26 +-
 .../apache/hadoop/hbase/executor/package-tree.html |    2 +-
 .../hbase/favored/FavoredNodeLoadBalancer.html     |   88 +-
 .../apache/hadoop/hbase/filter/package-tree.html   |    8 +-
 .../org/apache/hadoop/hbase/http/package-tree.html |    2 +-
 .../apache/hadoop/hbase/io/hfile/package-tree.html |    8 +-
 .../org/apache/hadoop/hbase/ipc/package-tree.html  |    2 +-
 .../hadoop/hbase/mapreduce/package-tree.html       |    4 +-
 .../master/HMaster.TableDescriptorGetter.html      |    4 +-
 .../org/apache/hadoop/hbase/master/HMaster.html    |  326 +-
 .../org/apache/hadoop/hbase/master/HbckChore.html  |   18 +-
 .../apache/hadoop/hbase/master/LoadBalancer.html   |   41 +-
 .../hbase/master/balancer/BaseLoadBalancer.html    |  137 +-
 .../hbase/master/balancer/ClusterInfoProvider.html |   40 +-
 ...edStochasticBalancer.FavoredNodeLoadPicker.html |   12 +-
 ...ochasticBalancer.FavoredNodeLocalityPicker.html |   10 +-
 .../master/balancer/FavoredStochasticBalancer.html |   52 +-
 .../master/balancer/MaintenanceLoadBalancer.html   |   59 +-
 .../master/balancer/MasterClusterInfoProvider.html |   45 +-
 .../hbase/master/balancer/SimpleLoadBalancer.html  |    4 +-
 .../master/balancer/StochasticLoadBalancer.html    |   10 +-
 .../hadoop/hbase/master/balancer/package-tree.html |    2 +-
 .../CatalogJanitor.SplitParentFirstComparator.html |    8 +-
 .../hbase/master/janitor/CatalogJanitor.html       |   71 +-
 .../apache/hadoop/hbase/master/package-tree.html   |   19 +-
 .../hbase/master/procedure/package-tree.html       |    4 +-
 .../org/apache/hadoop/hbase/package-tree.html      |   16 +-
 .../hadoop/hbase/procedure2/package-tree.html      |    2 +-
 .../hbase/procedure2/store/wal/package-tree.html   |    2 +-
 .../apache/hadoop/hbase/quotas/package-tree.html   |    8 +-
 .../hadoop/hbase/regionserver/package-tree.html    |   18 +-
 .../regionserver/querymatcher/package-tree.html    |    2 +-
 .../hbase/regionserver/wal/package-tree.html       |    2 +-
 .../hadoop/hbase/replication/package-tree.html     |    2 +-
 .../replication/regionserver/package-tree.html     |    2 +-
 .../hbase/rsgroup/RSGroupBasedLoadBalancer.html    |  167 +-
 .../hadoop/hbase/security/access/package-tree.html |    2 +-
 .../apache/hadoop/hbase/security/package-tree.html |    2 +-
 .../org/apache/hadoop/hbase/util/package-tree.html |   10 +-
 .../org/apache/hadoop/hbase/wal/package-tree.html  |    2 +-
 devapidocs/overview-tree.html                      |    7 +-
 .../hbase/favored/FavoredNodeLoadBalancer.html     |  803 ++-
 .../master/HMaster.TableDescriptorGetter.html      | 6203 ++++++++++----------
 .../org/apache/hadoop/hbase/master/HMaster.html    | 6203 ++++++++++----------
 .../org/apache/hadoop/hbase/master/HbckChore.html  |  333 +-
 .../apache/hadoop/hbase/master/LoadBalancer.html   |  215 +-
 .../hbase/master/balancer/BaseLoadBalancer.html    | 1159 ++--
 .../hbase/master/balancer/ClusterInfoProvider.html |   67 +-
 ...edStochasticBalancer.FavoredNodeLoadPicker.html | 1348 ++---
 ...ochasticBalancer.FavoredNodeLocalityPicker.html | 1348 ++---
 .../master/balancer/FavoredStochasticBalancer.html | 1348 ++---
 .../hbase/master/balancer/LoadBalancerFactory.html |    8 +-
 .../master/balancer/MaintenanceLoadBalancer.html   |  198 +-
 .../master/balancer/MasterClusterInfoProvider.html |  106 +-
 .../master/balancer/StochasticLoadBalancer.html    |    8 +-
 .../CatalogJanitor.SplitParentFirstComparator.html |  798 +--
 .../hbase/master/janitor/CatalogJanitor.html       |  798 +--
 .../hbase/rsgroup/RSGroupBasedLoadBalancer.html    |  759 ++-
 downloads.html                                     |    2 +-
 export_control.html                                |    2 +-
 index.html                                         |    2 +-
 issue-tracking.html                                |    2 +-
 mail-lists.html                                    |    2 +-
 metrics.html                                       |    2 +-
 old_news.html                                      |    2 +-
 plugin-management.html                             |    2 +-
 plugins.html                                       |    2 +-
 poweredbyhbase.html                                |    2 +-
 project-info.html                                  |    2 +-
 project-reports.html                               |    2 +-
 project-summary.html                               |    2 +-
 pseudo-distributed.html                            |    2 +-
 replication.html                                   |    2 +-
 resources.html                                     |    2 +-
 source-repository.html                             |    2 +-
 sponsors.html                                      |    2 +-
 supportingprojects.html                            |    2 +-
 team-list.html                                     |    2 +-
 testdevapidocs/allclasses-frame.html               |    1 +
 testdevapidocs/allclasses-noframe.html             |    1 +
 testdevapidocs/index-all.html                      |   24 +
 .../hbase/TestZooKeeper.MockLoadBalancer.html      |    4 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |    2 +-
 .../apache/hadoop/hbase/io/hfile/package-tree.html |    2 +-
 .../balancer/BalancerTestBase.MockMapping.html     |    4 +-
 .../master/balancer/DummyClusterInfoProvider.html  |  454 ++
 .../hbase/master/balancer/DummyCostFunction.html   |    4 +-
 .../LoadOnlyFavoredStochasticBalancer.html         |    4 +-
 .../balancer/RSGroupableBalancerTestBase.html      |   87 +-
 .../TestBaseLoadBalancer.MockBalancer.html         |   10 +-
 .../master/balancer/TestBaseLoadBalancer.html      |    8 +-
 .../balancer/TestRSGroupBasedLoadBalancer.html     |   26 +-
 ...lancerWithStochasticLoadBalancerAsInternal.html |   18 +-
 .../TestRegionHDFSBlockLocationFinder.html         |   28 +-
 .../class-use/DummyClusterInfoProvider.html        |  125 +
 .../hbase/master/balancer/package-frame.html       |    1 +
 .../hbase/master/balancer/package-summary.html     |   78 +-
 .../hadoop/hbase/master/balancer/package-tree.html |    1 +
 .../janitor/TestCatalogJanitorInMemoryStates.html  |   24 +-
 .../org/apache/hadoop/hbase/package-tree.html      |   20 +-
 .../hadoop/hbase/procedure/package-tree.html       |    8 +-
 .../hadoop/hbase/procedure2/package-tree.html      |    4 +-
 .../hadoop/hbase/regionserver/package-tree.html    |    4 +-
 .../org/apache/hadoop/hbase/test/package-tree.html |    2 +-
 .../org/apache/hadoop/hbase/wal/package-tree.html  |    2 +-
 testdevapidocs/overview-tree.html                  |    1 +
 .../master/balancer/DummyClusterInfoProvider.html  |  155 +
 .../balancer/RSGroupableBalancerTestBase.html      |  820 +--
 .../TestBaseLoadBalancer.MockBalancer.html         |  302 +-
 .../master/balancer/TestBaseLoadBalancer.html      |  302 +-
 .../balancer/TestRSGroupBasedLoadBalancer.html     |  336 +-
 ...lancerWithStochasticLoadBalancerAsInternal.html |  242 +-
 .../TestRegionHDFSBlockLocationFinder.html         |  367 +-
 .../janitor/TestCatalogJanitorInMemoryStates.html  |  315 +-
 128 files changed, 13924 insertions(+), 13119 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index b466c21..13884c4 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -467,7 +467,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-05</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-06</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index b958ae4..c52b73d 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.3, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20210505200615+00'00')
-/CreationDate (D:20210505201721+00'00')
+/ModDate (D:20210506200610+00'00')
+/CreationDate (D:20210506201650+00'00')
 >>
 endobj
 2 0 obj
diff --git a/book.html b/book.html
index 854e013..03b8bdd 100644
--- a/book.html
+++ b/book.html
@@ -46194,7 +46194,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2021-05-05 20:06:15 UTC
+Last updated 2021-05-06 20:06:10 UTC
 </div>
 </div>
 <link rel="stylesheet" href="./coderay-asciidoctor.css">
diff --git a/bulk-loads.html b/bulk-loads.html
index ca744ac..cd79855 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -172,7 +172,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-05</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-06</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 2d7fb33..7ddeafc 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -166,7 +166,7 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
 <tr class="b">
-<td>4406</td>
+<td>4407</td>
 <td>0</td>
 <td>0</td>
 <td>8912</td></tr></table></div>
@@ -7319,7 +7319,7 @@
 <tr class="a">
 <td>annotation</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_annotation.html#MissingDeprecated">MissingDeprecated</a></td>
-<td>5</td>
+<td>6</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>blocks</td>
@@ -7423,7 +7423,7 @@
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>2233</td>
+<td>2232</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>misc</td>
@@ -34980,8 +34980,8 @@
 <th>Line</th></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>javadoc</td>
-<td>NonEmptyAtclauseDescription</td>
+<td>annotation</td>
+<td>MissingDeprecated</td>
 <td>Javadoc comment at column 14 has parse error. Details: mismatched input ':' expecting &lt;EOF&gt; while parsing JAVADOC</td>
 <td>46</td></tr></table></div>
 <div class="section">
@@ -37854,535 +37854,535 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>740</td></tr>
+<td>739</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 317 lines (max allowed is 150).</td>
-<td>799</td></tr>
+<td>798</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
-<td>1367</td></tr>
+<td>1366</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
-<td>1474</td></tr>
+<td>1473</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1645</td></tr>
+<td>1644</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>1700</td></tr>
+<td>1699</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>1894</td></tr>
+<td>1893</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1905</td></tr>
+<td>1904</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1907</td></tr>
+<td>1906</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1908</td></tr>
+<td>1907</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1911</td></tr>
+<td>1910</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1912</td></tr>
+<td>1911</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1914</td></tr>
+<td>1913</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>1916</td></tr>
+<td>1915</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>1917</td></tr>
+<td>1916</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>1918</td></tr>
+<td>1917</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 116).</td>
-<td>1946</td></tr>
+<td>1945</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
-<td>1948</td></tr>
+<td>1947</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2157</td></tr>
+<td>2156</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2159</td></tr>
+<td>2158</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2161</td></tr>
+<td>2160</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2167</td></tr>
+<td>2166</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2168</td></tr>
+<td>2167</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2170</td></tr>
+<td>2169</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2172</td></tr>
+<td>2171</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2173</td></tr>
+<td>2172</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2175</td></tr>
+<td>2174</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2177</td></tr>
+<td>2176</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2178</td></tr>
+<td>2177</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2179</td></tr>
+<td>2178</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2192</td></tr>
+<td>2191</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2194</td></tr>
+<td>2193</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2196</td></tr>
+<td>2195</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2197</td></tr>
+<td>2196</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2198</td></tr>
+<td>2197</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2200</td></tr>
+<td>2199</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2202</td></tr>
+<td>2201</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2203</td></tr>
+<td>2202</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2205</td></tr>
+<td>2204</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2207</td></tr>
+<td>2206</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2208</td></tr>
+<td>2207</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2209</td></tr>
+<td>2208</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2292</td></tr>
+<td>2291</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2294</td></tr>
+<td>2293</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2300</td></tr>
+<td>2299</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2301</td></tr>
+<td>2300</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2302</td></tr>
+<td>2301</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 16, expected level should be one of the following: 18, 20.</td>
-<td>2309</td></tr>
+<td>2308</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 14, expected level should be one of the following: 16, 18.</td>
-<td>2311</td></tr>
+<td>2310</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
-<td>2312</td></tr>
+<td>2311</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2313</td></tr>
+<td>2312</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 12, expected level should be one of the following: 14, 16.</td>
-<td>2314</td></tr>
+<td>2313</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
-<td>2315</td></tr>
+<td>2314</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2316</td></tr>
+<td>2315</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2318</td></tr>
+<td>2317</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2325</td></tr>
+<td>2324</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2326</td></tr>
+<td>2325</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2328</td></tr>
+<td>2327</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2330</td></tr>
+<td>2329</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2331</td></tr>
+<td>2330</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2333</td></tr>
+<td>2332</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2335</td></tr>
+<td>2334</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2336</td></tr>
+<td>2335</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2337</td></tr>
+<td>2336</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2347</td></tr>
+<td>2346</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2349</td></tr>
+<td>2348</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2351</td></tr>
+<td>2350</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2361</td></tr>
+<td>2360</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2362</td></tr>
+<td>2361</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2364</td></tr>
+<td>2363</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2366</td></tr>
+<td>2365</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2367</td></tr>
+<td>2366</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2369</td></tr>
+<td>2368</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2371</td></tr>
+<td>2370</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2372</td></tr>
+<td>2371</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2373</td></tr>
+<td>2372</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2436</td></tr>
+<td>2435</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2440</td></tr>
+<td>2439</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2442</td></tr>
+<td>2441</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child has incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
-<td>2444</td></tr>
+<td>2443</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' has incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
-<td>2445</td></tr>
+<td>2444</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' has incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
-<td>2446</td></tr>
+<td>2445</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>2880</td></tr>
+<td>2879</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>3056</td></tr>
+<td>3055</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>3058</td></tr>
+<td>3057</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>3170</td></tr>
+<td>3169</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
-<td>3200</td></tr>
+<td>3199</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
-<td>3212</td></tr>
+<td>3211</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>3241</td></tr></table></div>
+<td>3240</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.HMasterCommandLine.java">org/apache/hadoop/hbase/master/HMasterCommandLine.java</h3>
 <table border="0" class="table table-striped">
@@ -73779,7 +73779,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-05</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-06</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/checkstyle.rss b/checkstyle.rss
index 0581fc9..9c48059 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,7 +25,7 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2021 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 4406,
+      <title>File: 4407,
              Errors: 8912,
              Warnings: 0,
              Infos: 0
@@ -49116,6 +49116,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.master.balancer.DummyClusterInfoProvider.java">org/apache/hadoop/hbase/master/balancer/DummyClusterInfoProvider.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.StatefulStoreMockMaker.java">org/apache/hadoop/hbase/regionserver/StatefulStoreMockMaker.java</a>
                 </td>
                 <td>
diff --git a/coc.html b/coc.html
index 2f17120..9df7ee8 100644
--- a/coc.html
+++ b/coc.html
@@ -241,7 +241,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-05</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-06</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependencies.html b/dependencies.html
index 53bacf1..ec033a8 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -313,7 +313,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-05</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-06</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index a5997d9..b35717e 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -824,7 +824,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-05</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-06</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-info.html b/dependency-info.html
index 4f492f2..3b3ff33 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -194,7 +194,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-05</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-06</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-management.html b/dependency-management.html
index 0c3f78d..b80fe3a 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -1201,7 +1201,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2021
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-05</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2021-05-06</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 9111b87..893cf06 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -17175,6 +17175,25 @@
 <ul class="blockList">
 <li class="blockList">
 <table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.master.janitor.<a href="org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master.janitor">CatalogJanitor</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.master.janitor.CatalogJanitor.DEFAULT_HBASE_CATALOGJANITOR_INTERVAL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#DEFAULT_HBASE_CATALOGJANITOR_INTERVAL">DEFAULT_HBASE_CATALOGJANITOR_INTERVAL</a></code></td>
+<td class="colLast"><code>300000</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
 <caption><span>org.apache.hadoop.hbase.master.janitor.<a href="org/apache/hadoop/hbase/master/janitor/MetaFixer.html" title="class in org.apache.hadoop.hbase.master.janitor">MetaFixer</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 270c666..3571854 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -17246,8 +17246,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/ReadOnlyConfiguration.html#conf">conf</a></span> - Variable in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/ReadOnlyConfiguration.html" title="class in org.apache.hadoop.hbase.coprocessor">ReadOnlyConfiguration</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#conf">conf</a></span> - Variable in class org.apache.hadoop.hbase.favored.<a href="org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodeLoadBalancer</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/http/AdminAuthorizedFilter.html#conf">conf</a></span> - Variable in class org.apache.hadoop.hbase.http.<a href="org/apache/hadoop/hbase/http/AdminAuthorizedFilter.html" title="class in org.apache.hadoop.hbase.http">AdminAuthorizedFilter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/http/HttpServer.Builder.html#conf">conf</a></span> - Variable in class org.apache.hadoop.hbase.http.<a href="org/apache/hadoop/hbase/http/HttpServer.Builder.html" title="class in org.apache.hadoop.hbase.http">HttpServer.Builder</a></dt>
@@ -17588,8 +17586,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/http/HttpServer.QuotingInputFilter.html#config">config</a></span> - Variable in class org.apache.hadoop.hbase.http.<a href="org/apache/hadoop/hbase/http/HttpServer.QuotingInputFilter.html" title="class in org.apache.hadoop.hbase.http">HttpServer.QuotingInputFilter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#config">config</a></span> - Variable in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/StripeCompactionPolicy.html#config">config</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/StripeCompactionPolicy.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">StripeCompactionPolicy</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StripeStoreEngine.html#config">config</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StripeStoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreEngine</a></dt>
@@ -17598,8 +17594,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html#config">config</a></span> - Variable in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerDescription</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#config">config</a></span> - Variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupBasedLoadBalancer</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html#config">config</a></span> - Variable in class org.apache.hadoop.hbase.tool.coprocessor.<a href="org/apache/hadoop/hbase/tool/coprocessor/CoprocessorValidator.html" title="class in org.apache.hadoop.hbase.tool.coprocessor">CoprocessorValidator</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/NettyRpcClientConfigHelper.html#CONFIG_NAME">CONFIG_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/NettyRpcClientConfigHelper.html" title="class in org.apache.hadoop.hbase.ipc">NettyRpcClientConfigHelper</a></dt>
@@ -24292,6 +24286,8 @@
 <dd>
 <div class="block">Default value for the balancer period</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#DEFAULT_HBASE_CATALOGJANITOR_INTERVAL">DEFAULT_HBASE_CATALOGJANITOR_INTERVAL</a></span> - Static variable in class org.apache.hadoop.hbase.master.janitor.<a href="org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master.janitor">CatalogJanitor</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html#DEFAULT_HBASE_CELLS_SCANNED_PER_HEARTBEAT_CHECK">DEFAULT_HBASE_CELLS_SCANNED_PER_HEARTBEAT_CHECK</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></dt>
 <dd>
 <div class="block">Default value of <a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html#HBASE_CELLS_SCANNED_PER_HEARTBEAT_CHECK"><code>StoreScanner.HBASE_CELLS_SCANNED_PER_HEARTBEAT_CHECK</code></a>.</div>
@@ -39382,8 +39378,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/RESTServer.html#getConf--">getConf()</a></span> - Method in class org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/RESTServer.html" title="class in org.apache.hadoop.hbase.rest">RESTServer</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getConf--">getConf()</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupBasedLoadBalancer</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.html#getConf--">getConf()</a></span> - Method in class org.apache.hadoop.hbase.security.visibility.<a href="org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.html" title="class in org.apache.hadoop.hbase.security.visibility">DefaultVisibilityLabelServiceImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/visibility/DefinedSetFilterScanLabelGenerator.html#getConf--">getConf()</a></span> - Method in class org.apache.hadoop.hbase.security.visibility.<a href="org/apache/hadoop/hbase/security/visibility/DefinedSetFilterScanLabelGenerator.html" title="class in org.apache.hadoop.hbase.security.visibility">DefinedSetFilterScanLabelGenerator</a></dt>
@@ -39462,6 +39456,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getConfiguration--">getConfiguration()</a></span> - Method in interface org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a></dt>
+<dd>
+<div class="block">Get the configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html" title="class in org.apache.hadoop.hbase.master.balancer">MasterClusterInfoProvider</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MasterFileSystem.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/NamespaceDescriptor.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a></dt>
@@ -107657,8 +107657,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/BaseConfigurable.html#setConf-org.apache.hadoop.conf.Configuration-">setConf(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/BaseConfigurable.html" title="class in org.apache.hadoop.hbase">BaseConfigurable</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#setConf-org.apache.hadoop.conf.Configuration-">setConf(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.favored.<a href="org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodeLoadBalancer</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/http/HttpServer.Builder.html#setConf-org.apache.hadoop.conf.Configuration-">setConf(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.http.<a href="org/apache/hadoop/hbase/http/HttpServer.Builder.html" title="class in org.apache.hadoop.hbase.http">HttpServer.Builder</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/crypto/Context.html#setConf-org.apache.hadoop.conf.Configuration-">setConf(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.io.crypto.<a href="org/apache/hadoop/hbase/io/crypto/Context.html" title="class in org.apache.hadoop.hbase.io.crypto">Context</a></dt>
@@ -107722,8 +107720,6 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html#setConf-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.zookeeper.ZKWatcher-org.apache.hadoop.hbase.replication.ReplicationQueueStorage-">setConf(Configuration, ZKWatcher, ReplicationQueueStorage)</a></span> - Method in class org.apache.hadoop.hbase.replication.master.<a href="org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.html" title="class in or [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#setConf-org.apache.hadoop.conf.Configuration-">setConf(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupBasedLoadBalancer</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclCleaner.html#setConf-org.apache.hadoop.conf.Configuration-">setConf(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclCleaner.html" title="class in org.apache.hadoop.hbase.security.access">SnapshotScannerHDFSAclCleaner</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/UserProvider.html#setConf-org.apache.hadoop.conf.Configuration-">setConf(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.security.<a href="org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a></dt>
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index a704be6..80fa3f9 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -166,10 +166,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <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.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>
 <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/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index fef6063..b29e455 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -455,25 +455,25 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/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>
+<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/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/LogQueryFilter.Type.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">LogQueryFilter.Type</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/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/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/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/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/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/ServerType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ServerType</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/CatalogReplicaMode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CatalogReplicaMode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/LogQueryFilter.FilterByOperator.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">LogQueryFilter.FilterByOperator</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/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/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/LogQueryFilter.FilterByOperator.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">LogQueryFilter.FilterByOperator</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/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/CatalogReplicaMode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CatalogReplicaMode</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/LogQueryFilter.Type.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">LogQueryFilter.Type</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/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/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.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/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/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
index 6c2be14..22f80bf 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -105,8 +105,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html b/devapidocs/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html
index 2e153a5..c55879e 100644
--- a/devapidocs/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html
+++ b/devapidocs/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -114,12 +114,12 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>org.apache.hadoop.conf.Configurable, <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPromoter.html" title="interface in org.apache.hadoop.hbase.favored">FavoredNodesPromoter</a>, <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadB [...]
+<dd><a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPromoter.html" title="interface in org.apache.hadoop.hbase.favored">FavoredNodesPromoter</a>, <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../ [...]
 </dl>
 <hr>
 <br>
 <pre>@InterfaceAudience.LimitedPrivate(value="Configuration")
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.70">FavoredNodeLoadBalancer</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.69">FavoredNodeLoadBalancer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPromoter.html" title="interface in org.apache.hadoop.hbase.favored">FavoredNodesPromoter</a></pre>
 <div class="block">An implementation of the <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><code>LoadBalancer</code></a> that
@@ -152,22 +152,18 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>private org.apache.hadoop.conf.Configuration</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#conf">conf</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#fnm">fnm</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/master/RackManager.html" title="class in org.apache.hadoop.hbase.master">RackManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#rackManager">rackManager</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#services">services</a></span></code>&nbsp;</td>
 </tr>
@@ -177,7 +173,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.master.balancer.<a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_DECISION_BUFFER_ENABLED">BALANCER_DECISION_BUFFER_ENABLED</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_REJECTION_BUFFER_ENABLED">BALANCER_REJECTION_BUFFER_ENABLED</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#clusterStatus">clusterStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/ [...]
+<code><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_DECISION_BUFFER_ENABLED">BALANCER_DECISION_BUFFER_ENABLED</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_REJECTION_BUFFER_ENABLED">BALANCER_REJECTION_BUFFER_ENABLED</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#clusterStatus">clusterStatus</a>, <a href="../../../../../org/apache/hadoop/hbase/ [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.favored.FavoredNodesPromoter">
@@ -314,10 +310,6 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 </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/favored/FavoredNodeLoadBalancer.html#setConf-org.apache.hadoop.conf.Configuration-">setConf</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</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/favored/FavoredNodeLoadBalancer.html#setMasterServices-org.apache.hadoop.hbase.master.MasterServices-">setMasterServices</a></span>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;services)</code>&nbsp;</td>
 </tr>
 </table>
@@ -326,7 +318,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.master.balancer.<a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#areSomeRegionReplicasColocated-org.apache.hadoop.hbase.master.balancer.BalancerClusterState-">areSomeRegionReplicasColocated</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#balanceCluster-java.util.Map-">balanceCluster</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#getConf--">getConf</a>, <a href="../../../../.. [...]
+<code><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#areSomeRegionReplicasColocated-org.apache.hadoop.hbase.master.balancer.BalancerClusterState-">areSomeRegionReplicasColocated</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#balanceCluster-java.util.Map-">balanceCluster</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#getConf--">getConf</a>, <a href="../../../../.. [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -355,7 +347,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.71">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.70">LOG</a></pre>
 </li>
 </ul>
 <a name="services">
@@ -364,7 +356,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <ul class="blockList">
 <li class="blockList">
 <h4>services</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/favored/FavoredNodeLoadBalancer.html#line.73">services</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/favored/FavoredNodeLoadBalancer.html#line.72">services</a></pre>
 </li>
 </ul>
 <a name="rackManager">
@@ -373,16 +365,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <ul class="blockList">
 <li class="blockList">
 <h4>rackManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/RackManager.html" title="class in org.apache.hadoop.hbase.master">RackManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.74">rackManager</a></pre>
-</li>
-</ul>
-<a name="conf">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>conf</h4>
-<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.75">conf</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/RackManager.html" title="class in org.apache.hadoop.hbase.master">RackManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.73">rackManager</a></pre>
 </li>
 </ul>
 <a name="fnm">
@@ -391,7 +374,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <ul class="blockListLast">
 <li class="blockList">
 <h4>fnm</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.76">fnm</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.74">fnm</a></pre>
 </li>
 </ul>
 </li>
@@ -408,7 +391,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FavoredNodeLoadBalancer</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.70">FavoredNodeLoadBalancer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.69">FavoredNodeLoadBalancer</a>()</pre>
 </li>
 </ul>
 </li>
@@ -419,28 +402,13 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="setConf-org.apache.hadoop.conf.Configuration-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setConf</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.79">setConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>setConf</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.conf.Configurable</code></dd>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#setConf-org.apache.hadoop.conf.Configuration-">setConf</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a></code></dd>
-</dl>
-</li>
-</ul>
 <a name="setMasterServices-org.apache.hadoop.hbase.master.MasterServices-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setMasterServices</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.83">setMasterServices</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;services)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.76">setMasterServices</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;services)</pre>
 </li>
 </ul>
 <a name="initialize--">
@@ -449,7 +417,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <ul class="blockList">
 <li class="blockList">
 <h4>initialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.88">initialize</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.81">initialize</a>()
                 throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#initialize--">LoadBalancer</a></code></span></div>
 <div class="block">Initialize the load balancer. Must be called after setters.</div>
@@ -469,7 +437,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceTable</h4>
-<pre>protected&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.97">balanceTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" tit [...]
+<pre>protected&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.88">balanceTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" tit [...]
                                         <a href="https://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="https://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/cli [...]
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#balanceTable-org.apache.hadoop.hbase.TableName-java.util.Map-">BaseLoadBalancer</a></code></span></div>
 <div class="block">Perform the major balance operation for table, all sub classes should override this method.
@@ -497,7 +465,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesP
 <li class="blockList">
 <h4>roundRobinAssignment</h4>
 <pre>@NonNull
-public&nbsp;<a href="https://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="https://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=" [...]
+public&nbsp;<a href="https://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="https://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=" [...]
                                                                       <a href="https://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)
                                                                throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#roundRobinAssignment-java.util.List-java.util.List-">BaseLoadBalancer</a></code></span></div>
@@ -533,7 +501,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>randomAssignment</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.216">randomAssignment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.207">randomAssignment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                                    <a href="https://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)
                             throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#randomAssignment-org.apache.hadoop.hbase.client.RegionInfo-java.util.List-">BaseLoadBalancer</a></code></span></div>
@@ -556,7 +524,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>segregateRegionsAndAssignRegionsWithFavoredNodes</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" tit [...]
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" tit [...]
                                                                                                                  <a href="https://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;availableServers)</pre>
 </li>
 </ul>
@@ -566,7 +534,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>availableServersContains</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.292">availableServersContains</a>(<a href="https://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="cl [...]
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.283">availableServersContains</a>(<a href="https://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="cl [...]
                                             <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;favoredNode)</pre>
 </li>
 </ul>
@@ -576,7 +544,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>assignRegionToAvailableFavoredNode</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.301">assignRegionToAvailableFavoredNode</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/ [...]
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.292">assignRegionToAvailableFavoredNode</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/ [...]
                                                 <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;primaryHost,
                                                 <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;secondaryHost,
@@ -589,7 +557,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>addRegionToMap</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.325">addRegionToMap</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-externa [...]
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.316">addRegionToMap</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-externa [...]
                             <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;host)</pre>
 </li>
@@ -600,7 +568,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getFavoredNodes</h4>
-<pre>public&nbsp;<a href="https://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/favored/FavoredNodeLoadBalancer.html#line.336">getFavoredNodes</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="i [...]
+<pre>public&nbsp;<a href="https://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/favored/FavoredNodeLoadBalancer.html#line.327">getFavoredNodes</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="i [...]
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPromoter.html#getFavoredNodes-org.apache.hadoop.hbase.client.RegionInfo-">getFavoredNodes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPromoter.html" title="interface in org.apache.hadoop.hbase.favored">FavoredNodesPromoter</a></code></dd>
@@ -613,7 +581,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>roundRobinAssignmentImpl</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.340">roundRobinAssignmentImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeAssignmentHelper.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodeAssignmentHelper</a>&nbsp;assignmentHelper,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.331">roundRobinAssignmentImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeAssignmentHelper.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodeAssignmentHelper</a>&nbsp;assignmentHelper,
                                       <a href="https://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="https://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/clien [...]
                                       <a href="https://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;&nbsp;regions,
                                       <a href="https://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)
@@ -630,7 +598,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>assignSecondaryAndTertiaryNodesForRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.349">assignSecondaryAndTertiaryNodesForRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeAssignmentHelper.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodeAssignmentHelper</a>&nbsp;assignmentHelper,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.340">assignSecondaryAndTertiaryNodesForRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeAssignmentHelper.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodeAssignmentHelper</a>&nbsp;assignmentHelper,
                                                       <a href="https://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;&nbsp;regions,
                                                       <a href="https://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;primaryRSMap)
                                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -646,7 +614,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>generateFavoredNodesForDaughter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.388">generateFavoredNodesForDaughter</a>(<a href="https://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/favored/FavoredNodeLoadBalancer.html#line.379">generateFavoredNodesForDaughter</a>(<a href="https://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="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;parent,
                                             <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionA,
                                             <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionB)
@@ -665,7 +633,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getInheritedFNForDaughter</h4>
-<pre>private&nbsp;<a href="https://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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.418">getInheritedFNForDaughter</a>(<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeAssi [...]
+<pre>private&nbsp;<a href="https://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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.409">getInheritedFNForDaughter</a>(<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodeAssi [...]
                                                   <a href="https://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;parentFavoredNodes,
                                                   <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPlan.Position.html" title="enum in org.apache.hadoop.hbase.favored">FavoredNodesPlan.Position</a>&nbsp;primary,
                                                   <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPlan.Position.html" title="enum in org.apache.hadoop.hbase.favored">FavoredNodesPlan.Position</a>&nbsp;secondary)
@@ -682,7 +650,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>generateFavoredNodesForMergedRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.443">generateFavoredNodesForMergedRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;merged,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html#line.434">generateFavoredNodesForMergedRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;merged,
                                                 <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;mergeParents)
                                          throws <a href="https://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>
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index b194c65..bc606ae 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -190,13 +190,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/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/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/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/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/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/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/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/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
index 6ecca37..d0bf6ab 100644
--- a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
@@ -140,9 +140,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Event.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Event</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/HttpConfig.Policy.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">HttpConfig.Policy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Output.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Output</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Event.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Event</span></a></li>
 </ul>
 </li>
 </ul>
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 edb839c..307c3b6 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -305,12 +305,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ReaderContext.ReaderType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">ReaderContext.ReaderType</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/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</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/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/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.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.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/ReaderContext.ReaderType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">ReaderContext.ReaderType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 24a3b11..718318a 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -357,8 +357,8 @@
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <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>
 <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/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index dd91057..ee4c819 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -300,11 +300,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<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/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/WALPlayer.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">WALPlayer.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/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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
index 4d3a61d..0cb3bef 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2236">HMaster.TableDescriptorGetter</a></pre>
+<pre>protected static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2235">HMaster.TableDescriptorGetter</a></pre>
 <div class="block">Implement to return TableDescriptor after pre-checks</div>
 </li>
 </ul>
@@ -150,7 +150,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>get</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html#line.2237">get</a>()
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html#line.2236">get</a>()
              throws <a href="https://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>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
index 793de24..d989fb1 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
@@ -2502,7 +2502,7 @@ public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServ
 <li class="blockList">
 <h4>createAssignmentManager</h4>
 <pre>@InterfaceAudience.Private
-protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.758">createAssignmentManager</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)</pre>
+protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.757">createAssignmentManager</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)</pre>
 </li>
 </ul>
 <a name="finishActiveMasterInitialization-org.apache.hadoop.hbase.monitoring.MonitoredTask-">
@@ -2511,7 +2511,7 @@ protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/assignment
 <ul class="blockList">
 <li class="blockList">
 <h4>finishActiveMasterInitialization</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.799">finishActiveMasterInitialization</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.798">finishActiveMasterInitialization</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                                        throws <a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>,
                                               org.apache.zookeeper.KeeperException,
@@ -2567,7 +2567,7 @@ protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/assignment
 <li class="blockList">
 <h4>waitForMetaOnline</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1124">waitForMetaOnline</a>()</pre>
+public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1123">waitForMetaOnline</a>()</pre>
 <div class="block">Check hbase:meta is up and ready for reading. For use during Master startup only.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -2582,7 +2582,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isRegionOnline</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1132">isRegionOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;ri)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1131">isRegionOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;ri)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if region is online and scannable else false if an error or shutdown (Otherwise
@@ -2596,7 +2596,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForNamespaceOnline</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1167">waitForNamespaceOnline</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1166">waitForNamespaceOnline</a>()
                                 throws <a href="https://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">Check hbase:namespace table is assigned. If not, startup will hang looking for the ns table
  <p/>
@@ -2618,7 +2618,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>updateConfigurationForQuotasObserver</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1195">updateConfigurationForQuotasObserver</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1194">updateConfigurationForQuotasObserver</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Adds the <code>MasterQuotasObserver</code> to the list of configured Master observers to
  automatically remove quotas for a table when that table is deleted.</div>
 </li>
@@ -2629,7 +2629,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>initMobCleaner</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1212">initMobCleaner</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1211">initMobCleaner</a>()</pre>
 </li>
 </ul>
 <a name="createServerManager-org.apache.hadoop.hbase.master.MasterServices-">
@@ -2639,7 +2639,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <li class="blockList">
 <h4>createServerManager</h4>
 <pre>@InterfaceAudience.Private
-protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1228">createServerManager</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)
+protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1227">createServerManager</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master)
                                                                 throws <a href="https://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"><p>
  Create a <a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master"><code>ServerManager</code></a> instance.
@@ -2659,7 +2659,7 @@ protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerMana
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForRegionServers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1235">waitForRegionServers</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1234">waitForRegionServers</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                            throws <a href="https://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="https://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>
@@ -2676,7 +2676,7 @@ protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerMana
 <li class="blockList">
 <h4>initClusterSchemaService</h4>
 <pre>@InterfaceAudience.Private
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1242">initClusterSchemaService</a>()
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1241">initClusterSchemaService</a>()
                                                             throws <a href="https://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="https://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>
@@ -2692,7 +2692,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>initQuotaManager</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1254">initQuotaManager</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1253">initQuotaManager</a>()
                        throws <a href="https://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>
@@ -2706,7 +2706,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>createQuotaSnapshotNotifier</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotNotifier</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1260">createQuotaSnapshotNotifier</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotNotifier</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1259">createQuotaSnapshotNotifier</a>()</pre>
 </li>
 </ul>
 <a name="isCatalogJanitorEnabled--">
@@ -2715,7 +2715,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogJanitorEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1266">isCatalogJanitorEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1265">isCatalogJanitorEnabled</a>()</pre>
 </li>
 </ul>
 <a name="isCleanerChoreEnabled--">
@@ -2724,7 +2724,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isCleanerChoreEnabled</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1270">isCleanerChoreEnabled</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1269">isCleanerChoreEnabled</a>()</pre>
 </li>
 </ul>
 <a name="getServerManager--">
@@ -2733,7 +2733,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1285">getServerManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1284">getServerManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getServerManager--">getServerManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2748,7 +2748,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterFileSystem</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1290">getMasterFileSystem</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1289">getMasterFileSystem</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterFileSystem--">getMasterFileSystem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2763,7 +2763,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterWalManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1295">getMasterWalManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterWalManager.html" title="class in org.apache.hadoop.hbase.master">MasterWalManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1294">getMasterWalManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterWalManager--">getMasterWalManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2778,7 +2778,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitWALManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitWALManager.html" title="class in org.apache.hadoop.hbase.master">SplitWALManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1300">getSplitWALManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitWALManager.html" title="class in org.apache.hadoop.hbase.master">SplitWALManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1299">getSplitWALManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getSplitWALManager--">getSplitWALManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2793,7 +2793,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableStateManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1305">getTableStateManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/TableStateManager.html" title="class in org.apache.hadoop.hbase.master">TableStateManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1304">getTableStateManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getTableStateManager--">getTableStateManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2808,7 +2808,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>startServiceThreads</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1316">startServiceThreads</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1315">startServiceThreads</a>()
                           throws <a href="https://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>
@@ -2822,7 +2822,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>stopServiceThreads</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1413">stopServiceThreads</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1412">stopServiceThreads</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#stopServiceThreads--">HRegionServer</a></code></span></div>
 <div class="block">Wait on all threads to finish. Presumption is that all closes and stops
  have already been called.</div>
@@ -2838,7 +2838,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>createProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1471">createProcedureExecutor</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1470">createProcedureExecutor</a>()
                               throws <a href="https://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>
@@ -2852,7 +2852,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>startProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1502">startProcedureExecutor</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1501">startProcedureExecutor</a>()
                              throws <a href="https://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>
@@ -2866,7 +2866,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>switchSnapshotCleanup</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1511">switchSnapshotCleanup</a>(boolean&nbsp;on,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1510">switchSnapshotCleanup</a>(boolean&nbsp;on,
                            boolean&nbsp;synchronous)</pre>
 <div class="block">Turn on/off Snapshot Cleanup Chore</div>
 <dl>
@@ -2881,7 +2881,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>switchSnapshotCleanup</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1521">switchSnapshotCleanup</a>(boolean&nbsp;on)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1520">switchSnapshotCleanup</a>(boolean&nbsp;on)</pre>
 </li>
 </ul>
 <a name="stopProcedureExecutor--">
@@ -2890,7 +2890,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>stopProcedureExecutor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1535">stopProcedureExecutor</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1534">stopProcedureExecutor</a>()</pre>
 </li>
 </ul>
 <a name="stopChores--">
@@ -2899,7 +2899,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>stopChores</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1550">stopChores</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1549">stopChores</a>()</pre>
 </li>
 </ul>
 <a name="getRemoteInetAddress-int-long-">
@@ -2908,7 +2908,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteInetAddress</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1574">getRemoteInetAddress</a>(int&nbsp;port,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1573">getRemoteInetAddress</a>(int&nbsp;port,
                                  long&nbsp;serverStartCode)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/net/UnknownHostException.html?is-external=true" title="class or interface in java.net">UnknownHostException</a></pre>
 <dl>
@@ -2925,7 +2925,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxBalancingTime</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1594">getMaxBalancingTime</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1593">getMaxBalancingTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Maximum time we should run balancer for</dd>
@@ -2938,7 +2938,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxRegionsInTransition</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1605">getMaxRegionsInTransition</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1604">getMaxRegionsInTransition</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Maximum number of regions in transition</dd>
@@ -2951,7 +2951,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceThrottling</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1617">balanceThrottling</a>(long&nbsp;nextBalanceStartTime,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1616">balanceThrottling</a>(long&nbsp;nextBalanceStartTime,
                                int&nbsp;maxRegionsInTransition,
                                long&nbsp;cutoffTime)</pre>
 <div class="block">It first sleep to the next balance plan start time. Meanwhile, throttling by the max
@@ -2970,7 +2970,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>balance</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1648">balance</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1647">balance</a>()
                 throws <a href="https://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>
@@ -2984,7 +2984,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>skipRegionManagementAction</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1658">skipRegionManagementAction</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;action)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1657">skipRegionManagementAction</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;action)</pre>
 <div class="block">Checks master state before initiating action over region topology.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -3002,7 +3002,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>balance</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1675">balance</a>(boolean&nbsp;force)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1674">balance</a>(boolean&nbsp;force)
                 throws <a href="https://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>
@@ -3016,7 +3016,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>executeRegionPlansWithThrottling</h4>
-<pre>public&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1758">executeRegionPlansWithThrottling</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List [...]
+<pre>public&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1757">executeRegionPlansWithThrottling</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List [...]
 <div class="block">Execute region plans with throttling</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -3034,7 +3034,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionNormalizerManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizerManager.html" title="class in org.apache.hadoop.hbase.master.normalizer">RegionNormalizerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1804">getRegionNormalizerManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizerManager.html" title="class in org.apache.hadoop.hbase.master.normalizer">RegionNormalizerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1803">getRegionNormalizerManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getRegionNormalizerManager--">getRegionNormalizerManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3049,7 +3049,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>normalizeRegions</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1809">normalizeRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/client/NormalizeTableFilterParams.html" title="class in org.apache.hadoop.hbase.client">NormalizeTableFilterParams</a>&nbsp;ntfp,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1808">normalizeRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/client/NormalizeTableFilterParams.html" title="class in org.apache.hadoop.hbase.client">NormalizeTableFilterParams</a>&nbsp;ntfp,
                                 boolean&nbsp;isHighPriority)
                          throws <a href="https://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/master/MasterServices.html#normalizeRegions-org.apache.hadoop.hbase.client.NormalizeTableFilterParams-boolean-">MasterServices</a></code></span></div>
@@ -3074,7 +3074,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>getClientIdAuditPrefix</h4>
-<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.1841">getClientIdAuditPrefix</a>()</pre>
+<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.1840">getClientIdAuditPrefix</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getClientIdAuditPrefix--">getClientIdAuditPrefix</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3089,7 +3089,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>setCatalogJanitorEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1852">setCatalogJanitorEnabled</a>(boolean&nbsp;b)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1851">setCatalogJanitorEnabled</a>(boolean&nbsp;b)</pre>
 <div class="block">Switch for the background CatalogJanitor thread.
  Used for testing.  The thread will continue to run.  It will just be a noop
  if disabled.</div>
@@ -3105,7 +3105,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeRegions</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1857">mergeRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1856">mergeRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
                          boolean&nbsp;forcible,
                          long&nbsp;ng,
                          long&nbsp;nonce)
@@ -3133,7 +3133,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>splitRegion</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1892">splitRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1891">splitRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                         byte[]&nbsp;splitRow,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -3161,7 +3161,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>warmUpRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1921">warmUpRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1920">warmUpRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                           <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region)</pre>
 </li>
 </ul>
@@ -3172,7 +3172,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>move</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1934">move</a>(byte[]&nbsp;encodedRegionName,
+public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1933">move</a>(byte[]&nbsp;encodedRegionName,
                                             byte[]&nbsp;destServerName)
                                      throws <a href="https://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>
@@ -3187,7 +3187,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2026">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2025">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                         byte[][]&nbsp;splitKeys,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -3212,7 +3212,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>createSystemTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2068">createSystemTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor)
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2067">createSystemTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor)
                        throws <a href="https://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/master/MasterServices.html#createSystemTable-org.apache.hadoop.hbase.client.TableDescriptor-">MasterServices</a></code></span></div>
 <div class="block">Create a system table using the given table definition.</div>
@@ -3233,7 +3233,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>startActiveMasterManager</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2091">startActiveMasterManager</a>(int&nbsp;infoPort)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2090">startActiveMasterManager</a>(int&nbsp;infoPort)
                                throws org.apache.zookeeper.KeeperException</pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3247,7 +3247,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogTable</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2144">isCatalogTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2143">isCatalogTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
 <a name="deleteTable-org.apache.hadoop.hbase.TableName-long-long-">
@@ -3256,7 +3256,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2149">deleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2148">deleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3278,7 +3278,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>truncateTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2183">truncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2182">truncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                           boolean&nbsp;preserveSplits,
                           long&nbsp;nonceGroup,
                           long&nbsp;nonce)
@@ -3302,7 +3302,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>addColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2213">addColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2212">addColumn</a>(<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/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;column,
                       long&nbsp;nonceGroup,
                       long&nbsp;nonce)
@@ -3326,7 +3326,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2241">modifyColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2240">modifyColumn</a>(<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/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;descriptor,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -3350,7 +3350,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2261">deleteColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2260">deleteColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          byte[]&nbsp;columnName,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -3374,7 +3374,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>enableTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2286">enableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2285">enableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3396,7 +3396,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>disableTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2341">disableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2340">disableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3418,7 +3418,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyTable</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2376">modifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2375">modifyTable</a>(<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/master/HMaster.TableDescriptorGetter.html" title="interface in org.apache.hadoop.hbase.master">HMaster.TableDescriptorGetter</a>&nbsp;newDescriptorGetter,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce,
@@ -3436,7 +3436,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2413">modifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2412">modifyTable</a>(<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;newDescriptor,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -3460,7 +3460,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2425">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshotDesc,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2424">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshotDesc,
                             long&nbsp;nonceGroup,
                             long&nbsp;nonce,
                             boolean&nbsp;restoreAcl)
@@ -3477,7 +3477,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTableExists</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2449">checkTableExists</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2448">checkTableExists</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                        throws <a href="https://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/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a></pre>
 <dl>
@@ -3493,7 +3493,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTableModifiable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2457">checkTableModifiable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2456">checkTableModifiable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                           throws <a href="https://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/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a>,
                                  <a href="../../../../../org/apache/hadoop/hbase/TableNotDisabledException.html" title="class in org.apache.hadoop.hbase">TableNotDisabledException</a></pre>
@@ -3517,7 +3517,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterMetricsWithoutCoprocessor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2469">getClusterMetricsWithoutCoprocessor</a>()
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2468">getClusterMetricsWithoutCoprocessor</a>()
                                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3531,7 +3531,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterMetricsWithoutCoprocessor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2473">getClusterMetricsWithoutCoprocessor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics [...]
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2472">getClusterMetricsWithoutCoprocessor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics [...]
                                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3545,7 +3545,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2559">getClusterMetrics</a>()
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2558">getClusterMetrics</a>()
                                  throws <a href="https://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="returnLabel">Returns:</span></dt>
@@ -3561,7 +3561,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2563">getClusterMetrics</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" titl [...]
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2562">getClusterMetrics</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" titl [...]
                                  throws <a href="https://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>
@@ -3575,7 +3575,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupMasters</h4>
-<pre><a href="https://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/master/HMaster.html#line.2574">getBackupMasters</a>()</pre>
+<pre><a href="https://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/master/HMaster.html#line.2573">getBackupMasters</a>()</pre>
 </li>
 </ul>
 <a name="getLoadedCoprocessors--">
@@ -3584,7 +3584,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getLoadedCoprocessors</h4>
-<pre>public static&nbsp;<a href="https://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/master/HMaster.html#line.2584">getLoadedCoprocessors</a>()</pre>
+<pre>public static&nbsp;<a href="https://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/master/HMaster.html#line.2583">getLoadedCoprocessors</a>()</pre>
 <div class="block">The set of loaded coprocessors is stored in a static set. Since it's
  statically allocated, it does not require that HMaster's cpHost be
  initialized prior to accessing it.</div>
@@ -3600,7 +3600,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterStartTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2591">getMasterStartTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2590">getMasterStartTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster was started.</dd>
@@ -3613,7 +3613,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterActiveTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2598">getMasterActiveTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2597">getMasterActiveTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster became the active master.</dd>
@@ -3626,7 +3626,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterFinishedInitializationTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2605">getMasterFinishedInitializationTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2604">getMasterFinishedInitializationTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster finished becoming the active master</dd>
@@ -3639,7 +3639,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumWALFiles</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2609">getNumWALFiles</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2608">getNumWALFiles</a>()</pre>
 </li>
 </ul>
 <a name="getProcedureStore--">
@@ -3648,7 +3648,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedureStore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2613">getProcedureStore</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2612">getProcedureStore</a>()</pre>
 </li>
 </ul>
 <a name="getRegionServerInfoPort-org.apache.hadoop.hbase.ServerName-">
@@ -3657,7 +3657,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerInfoPort</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2617">getRegionServerInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2616">getRegionServerInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 </li>
 </ul>
 <a name="getRegionServerVersion-org.apache.hadoop.hbase.ServerName-">
@@ -3666,7 +3666,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerVersion</h4>
-<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.2624">getRegionServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.2623">getRegionServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getRegionServerVersion-org.apache.hadoop.hbase.ServerName-">getRegionServerVersion</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3679,7 +3679,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>checkIfShouldMoveSystemRegionAsync</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2631">checkIfShouldMoveSystemRegionAsync</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2630">checkIfShouldMoveSystemRegionAsync</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#checkIfShouldMoveSystemRegionAsync--">MasterServices</a></code></span></div>
 <div class="block">Called when a new RegionServer is added to the cluster.
  Checks if new server has a newer version than any existing server and will move system tables
@@ -3696,7 +3696,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessors</h4>
-<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.2638">getMasterCoprocessors</a>()</pre>
+<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.2637">getMasterCoprocessors</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>array of coprocessor SimpleNames.</dd>
@@ -3709,7 +3709,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2644">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2643">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-java.lang.Throwable-">HRegionServer</a></code></span></div>
 <div class="block">Cause the server to exit without closing the regions it is serving, the log
@@ -3732,7 +3732,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getZooKeeper</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2669">getZooKeeper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2668">getZooKeeper</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getZooKeeper--">Server</a></code></span></div>
 <div class="block">Gets the ZooKeeper instance for this server.</div>
 <dl>
@@ -3749,7 +3749,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessorHost</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2674">getMasterCoprocessorHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2673">getMasterCoprocessorHost</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterCoprocessorHost--">getMasterCoprocessorHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3764,7 +3764,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterQuotaManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2679">getMasterQuotaManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2678">getMasterQuotaManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterQuotaManager--">getMasterQuotaManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3779,7 +3779,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterProcedureExecutor</h4>
-<pre>public&nbsp;<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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2684">getMasterProcedureExecutor</a>()</pre>
+<pre>public&nbsp;<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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2683">getMasterProcedureExecutor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterProcedureExecutor--">getMasterProcedureExecutor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3794,7 +3794,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2689">getServerName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2688">getServerName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getServerName--">getServerName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a></code></dd>
@@ -3811,7 +3811,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getAssignmentManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2694">getAssignmentManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2693">getAssignmentManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getAssignmentManager--">getAssignmentManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3826,7 +3826,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getCatalogJanitor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master.janitor">CatalogJanitor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2699">getCatalogJanitor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master.janitor">CatalogJanitor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2698">getCatalogJanitor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getCatalogJanitor--">getCatalogJanitor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3841,7 +3841,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerFatalLogBuffer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2703">getRegionServerFatalLogBuffer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2702">getRegionServerFatalLogBuffer</a>()</pre>
 </li>
 </ul>
 <a name="shutdown--">
@@ -3850,7 +3850,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2711">shutdown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2710">shutdown</a>()
               throws <a href="https://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">Shutdown the cluster.
  Master runs a coordinated stop of all RegionServers and then itself.</div>
@@ -3866,7 +3866,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>stopMaster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2744">stopMaster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2743">stopMaster</a>()
                 throws <a href="https://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>
@@ -3880,7 +3880,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2752">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2751">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
 <div class="block">Stop this service.
  Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -3901,7 +3901,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <li class="blockList">
 <h4>checkServiceStarted</h4>
 <pre>@InterfaceAudience.Private
-protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2762">checkServiceStarted</a>()
+protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2761">checkServiceStarted</a>()
                                                        throws <a href="../../../../../org/apache/hadoop/hbase/ipc/ServerNotRunningYetException.html" title="class in org.apache.hadoop.hbase.ipc">ServerNotRunningYetException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3915,7 +3915,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>checkInitialized</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2768">checkInitialized</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2767">checkInitialized</a>()
                throws <a href="../../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>,
                       <a href="../../../../../org/apache/hadoop/hbase/ipc/ServerNotRunningYetException.html" title="class in org.apache.hadoop.hbase.ipc">ServerNotRunningYetException</a>,
                       <a href="../../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a>,
@@ -3935,7 +3935,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isActiveMaster</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2788">isActiveMaster</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2787">isActiveMaster</a>()</pre>
 <div class="block">Report whether this master is currently the active master or not.
  If not active master, we are parked on ZK waiting to become active.
 
@@ -3954,7 +3954,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isInitialized</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2802">isInitialized</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2801">isInitialized</a>()</pre>
 <div class="block">Report whether this master has completed with its initialization and is
  ready.  If ready, the master is also the active master.  A standby master
  is never ready.
@@ -3974,7 +3974,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isOnline</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2815">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2814">isOnline</a>()</pre>
 <div class="block">Report whether this master is started
 
  This method is used for testing.</div>
@@ -3992,7 +3992,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockList">
 <li class="blockList">
 <h4>isInMaintenanceMode</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2825">isInMaintenanceMode</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2824">isInMaintenanceMode</a>()</pre>
 <div class="block">Report whether this master is in maintenance mode.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -4009,7 +4009,7 @@ protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbas
 <li class="blockList">
 <h4>setInitialized</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2830">setInitialized</a>(boolean&nbsp;isInitialized)</pre>
+public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2829">setInitialized</a>(boolean&nbsp;isInitialized)</pre>
 </li>
 </ul>
 <a name="getInitializedEvent--">
@@ -4018,7 +4018,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitializedEvent</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2835">getInitializedEvent</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2834">getInitializedEvent</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getInitializedEvent--">getInitializedEvent</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4033,7 +4033,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getAverageLoad</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2845">getAverageLoad</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2844">getAverageLoad</a>()</pre>
 <div class="block">Compute the average load across all region servers.
  Currently, this uses a very naive computation - just uses the number of
  regions being served, ignoring stats about number of requests.</div>
@@ -4049,7 +4049,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>registerService</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2858">registerService</a>(org.apache.hbase.thirdparty.com.google.protobuf.Service&nbsp;instance)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2857">registerService</a>(org.apache.hbase.thirdparty.com.google.protobuf.Service&nbsp;instance)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#registerService-org.apache.hbase.thirdparty.com.google.protobuf.Service-">RegionServerServices</a></code></span></div>
 <div class="block">Registers a new protocol buffer <code>Service</code> subclass as a coprocessor endpoint to be
  available for handling</div>
@@ -4073,7 +4073,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>constructMaster</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2883">constructMaster</a>(<a href="https://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 <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" titl [...]
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2882">constructMaster</a>(<a href="https://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 <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" titl [...]
                                       org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Utility for constructing an instance of the passed HMaster class.</div>
 <dl>
@@ -4090,7 +4090,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2902">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2901">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/master/HMasterCommandLine.html" title="class in org.apache.hadoop.hbase.master"><code>HMasterCommandLine</code></a></dd>
@@ -4103,7 +4103,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getHFileCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2908">getHFileCleaner</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2907">getHFileCleaner</a>()</pre>
 </li>
 </ul>
 <a name="getLogCleaner--">
@@ -4112,7 +4112,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2912">getLogCleaner</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2911">getLogCleaner</a>()</pre>
 </li>
 </ul>
 <a name="getSnapshotManager--">
@@ -4121,7 +4121,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getSnapshotManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2920">getSnapshotManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2919">getSnapshotManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getSnapshotManager--">getSnapshotManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4136,7 +4136,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterProcedureManagerHost</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2928">getMasterProcedureManagerHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2927">getMasterProcedureManagerHost</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterProcedureManagerHost--">getMasterProcedureManagerHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4151,7 +4151,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterSchema</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchema.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchema</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2933">getClusterSchema</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchema.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchema</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2932">getClusterSchema</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getClusterSchema--">getClusterSchema</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4166,7 +4166,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>createNamespace</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2945">createNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;namespaceDescriptor,
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2944">createNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;namespaceDescriptor,
                      long&nbsp;nonceGroup,
                      long&nbsp;nonce)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4190,7 +4190,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyNamespace</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2981">modifyNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;newNsDescriptor,
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2980">modifyNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;newNsDescriptor,
                      long&nbsp;nonceGroup,
                      long&nbsp;nonce)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4213,7 +4213,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteNamespace</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3019">deleteNamespace</a>(<a href="https://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>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3018">deleteNamespace</a>(<a href="https://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,
                      long&nbsp;nonceGroup,
                      long&nbsp;nonce)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4236,7 +4236,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getNamespace</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3054">getNamespace</a>(<a href="https://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><a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3053">getNamespace</a>(<a href="https://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="https://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">Get a Namespace</div>
 <dl>
@@ -4255,7 +4255,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getNamespaces</h4>
-<pre><a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3066">getNamespaces</a>()
+<pre><a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3065">getNamespaces</a>()
                                  throws <a href="https://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">Get all Namespaces</div>
 <dl>
@@ -4272,7 +4272,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>listNamespaces</h4>
-<pre>public&nbsp;<a href="https://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="https://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/master/HMaster.html#line.3083">listNamespaces</a>()
+<pre>public&nbsp;<a href="https://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="https://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/master/HMaster.html#line.3082">listNamespaces</a>()
                             throws <a href="https://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">List namespace names</div>
 <dl>
@@ -4289,7 +4289,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableNamesByNamespace</h4>
-<pre>public&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3099">listTableNamesByNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=tru [...]
+<pre>public&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3098">listTableNamesByNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=tru [...]
                                           throws <a href="https://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/master/MasterServices.html#listTableNamesByNamespace-java.lang.String-">MasterServices</a></code></span></div>
 <div class="block">Get list of table names by namespace</div>
@@ -4311,7 +4311,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptorsByNamespace</h4>
-<pre>public&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3105">listTableDescriptorsByNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/j [...]
+<pre>public&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3104">listTableDescriptorsByNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/j [...]
                                                       throws <a href="https://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/master/MasterServices.html#listTableDescriptorsByNamespace-java.lang.String-">MasterServices</a></code></span></div>
 <div class="block">Get list of table descriptors by namespace</div>
@@ -4333,7 +4333,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>abortProcedure</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3111">abortProcedure</a>(long&nbsp;procId,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3110">abortProcedure</a>(long&nbsp;procId,
                               boolean&nbsp;mayInterruptIfRunning)
                        throws <a href="https://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/master/MasterServices.html#abortProcedure-long-boolean-">MasterServices</a></code></span></div>
@@ -4357,7 +4357,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedures</h4>
-<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3127">getProcedures</a>()
+<pre>public&nbsp;<a href="https://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/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3126">getProcedures</a>()
                                  throws <a href="https://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/master/MasterServices.html#getProcedures--">MasterServices</a></code></span></div>
 <div class="block">Get procedures</div>
@@ -4377,7 +4377,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getLocks</h4>
-<pre>public&nbsp;<a href="https://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/procedure2/LockedResource.html" title="class in org.apache.hadoop.hbase.procedure2">LockedResource</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3143">getLocks</a>()
+<pre>public&nbsp;<a href="https://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/procedure2/LockedResource.html" title="class in org.apache.hadoop.hbase.procedure2">LockedResource</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3142">getLocks</a>()
                               throws <a href="https://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/master/MasterServices.html#getLocks--">MasterServices</a></code></span></div>
 <div class="block">Get locks</div>
@@ -4397,7 +4397,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptors</h4>
-<pre>public&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3168">listTableDescriptors</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/St [...]
+<pre>public&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3167">listTableDescriptors</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/St [...]
                                                   <a href="https://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,
                                                   <a href="https://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;tableNameList,
                                                   boolean&nbsp;includeSysTables)
@@ -4422,7 +4422,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableNames</h4>
-<pre>public&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3189">listTableNames</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="c [...]
+<pre>public&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3188">listTableNames</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="c [...]
                                       <a href="https://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,
                                       boolean&nbsp;includeSysTables)
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4445,7 +4445,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptors</h4>
-<pre>private&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3209">getTableDescriptors</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Li [...]
+<pre>private&nbsp;<a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3208">getTableDescriptors</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Li [...]
                                                   <a href="https://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="https://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,
                                                   <a href="https://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;tableNameList,
@@ -4466,7 +4466,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>filterTablesByRegex</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3250">filterTablesByRegex</a>(<a href="https://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/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;descriptors,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3249">filterTablesByRegex</a>(<a href="https://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/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;descriptors,
                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</pre>
 <div class="block">Removes the table descriptors that don't match the pattern.</div>
 <dl>
@@ -4482,7 +4482,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTimestamp</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3268">getLastMajorCompactionTimestamp</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3267">getLastMajorCompactionTimestamp</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)
                                      throws <a href="https://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>
@@ -4503,7 +4503,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastMajorCompactionTimestampForRegion</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3274">getLastMajorCompactionTimestampForRegion</a>(byte[]&nbsp;regionName)
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3273">getLastMajorCompactionTimestampForRegion</a>(byte[]&nbsp;regionName)
                                               throws <a href="https://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>
@@ -4522,7 +4522,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getMobCompactionState</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3288">getMobCompactionState</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3287">getMobCompactionState</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Gets the mob file compaction state for a specific table.
  Whether all the mob files are selected is known during the compaction execution, but
  the statistic is done just before compaction starts, it is hard to know the compaction
@@ -4542,7 +4542,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>reportMobCompactionStart</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3296">reportMobCompactionStart</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3295">reportMobCompactionStart</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                               throws <a href="https://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>
@@ -4556,7 +4556,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>reportMobCompactionEnd</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3313">reportMobCompactionEnd</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3312">reportMobCompactionEnd</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                             throws <a href="https://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>
@@ -4570,7 +4570,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>isBalancerOn</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3339">isBalancerOn</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3338">isBalancerOn</a>()</pre>
 <div class="block">Queries the state of the <a href="../../../../../org/apache/hadoop/hbase/zookeeper/LoadBalancerTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><code>LoadBalancerTracker</code></a>. If the balancer is not initialized,
  false is returned.</div>
 <dl>
@@ -4587,7 +4587,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>isNormalizerOn</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3349">isNormalizerOn</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3348">isNormalizerOn</a>()</pre>
 <div class="block">Queries the state of the <a href="../../../../../org/apache/hadoop/hbase/zookeeper/RegionNormalizerTracker.html" title="class in org.apache.hadoop.hbase.zookeeper"><code>RegionNormalizerTracker</code></a>. If it's not initialized,
  false is returned.</div>
 </li>
@@ -4598,7 +4598,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>isSplitOrMergeEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3361">isSplitOrMergeEnabled</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;switchType)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3360">isSplitOrMergeEnabled</a>(<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client">MasterSwitchType</a>&nbsp;switchType)</pre>
 <div class="block">Queries the state of the <a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.html" title="class in org.apache.hadoop.hbase.master"><code>SplitOrMergeTracker</code></a>. If it is not initialized,
  false is returned. If switchType is illegal, false will return.</div>
 <dl>
@@ -4617,7 +4617,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getLoadBalancerClassName</h4>
-<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.3374">getLoadBalancerClassName</a>()</pre>
+<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.3373">getLoadBalancerClassName</a>()</pre>
 <div class="block">Fetch the configured <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><code>LoadBalancer</code></a> class name. If none is set, a default is returned.
  <p/>
  Notice that, the base load balancer will always be <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.rsgroup"><code>RSGroupBasedLoadBalancer</code></a> now, so
@@ -4634,7 +4634,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitOrMergeTracker</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.html" title="class in org.apache.hadoop.hbase.master">SplitOrMergeTracker</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3379">getSplitOrMergeTracker</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/SplitOrMergeTracker.html" title="class in org.apache.hadoop.hbase.master">SplitOrMergeTracker</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3378">getSplitOrMergeTracker</a>()</pre>
 </li>
 </ul>
 <a name="getLoadBalancer--">
@@ -4643,7 +4643,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getLoadBalancer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupBasedLoadBalancer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3384">getLoadBalancer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupBasedLoadBalancer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3383">getLoadBalancer</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getLoadBalancer--">getLoadBalancer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4658,7 +4658,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getFavoredNodesManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3389">getFavoredNodesManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3388">getFavoredNodesManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getFavoredNodesManager--">getFavoredNodesManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4673,7 +4673,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>executePeerProcedure</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3393">executePeerProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html" title="class in org.apache.hadoop.hbase.master.replication">AbstractPeerProcedure</a>&lt;?&gt;&nbsp;procedure)
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3392">executePeerProcedure</a>(<a href="../../../../../org/apache/hadoop/hbase/master/replication/AbstractPeerProcedure.html" title="class in org.apache.hadoop.hbase.master.replication">AbstractPeerProcedure</a>&lt;?&gt;&nbsp;procedure)
                            throws <a href="https://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>
@@ -4687,7 +4687,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>addReplicationPeer</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3400">addReplicationPeer</a>(<a href="https://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;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3399">addReplicationPeer</a>(<a href="https://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,
                                boolean&nbsp;enabled)
                         throws <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a>,
@@ -4713,7 +4713,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>removeReplicationPeer</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3408">removeReplicationPeer</a>(<a href="https://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;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3407">removeReplicationPeer</a>(<a href="https://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="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a>,
                                   <a href="https://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/master/MasterServices.html#removeReplicationPeer-java.lang.String-">MasterServices</a></code></span></div>
@@ -4735,7 +4735,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>enableReplicationPeer</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3414">enableReplicationPeer</a>(<a href="https://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;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3413">enableReplicationPeer</a>(<a href="https://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="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a>,
                                   <a href="https://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/master/MasterServices.html#enableReplicationPeer-java.lang.String-">MasterServices</a></code></span></div>
@@ -4757,7 +4757,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>disableReplicationPeer</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3420">disableReplicationPeer</a>(<a href="https://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;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3419">disableReplicationPeer</a>(<a href="https://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="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a>,
                                    <a href="https://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/master/MasterServices.html#disableReplicationPeer-java.lang.String-">MasterServices</a></code></span></div>
@@ -4779,7 +4779,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationPeerConfig</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3426">getReplicationPeerConfig</a>(<a href="https://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;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3425">getReplicationPeerConfig</a>(<a href="https://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="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a>,
                                                       <a href="https://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/master/MasterServices.html#getReplicationPeerConfig-java.lang.String-">MasterServices</a></code></span></div>
@@ -4803,7 +4803,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>updateReplicationPeerConfig</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3441">updateReplicationPeerConfig</a>(<a href="https://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;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3440">updateReplicationPeerConfig</a>(<a href="https://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="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a>,
                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4827,7 +4827,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>listReplicationPeers</h4>
-<pre>public&nbsp;<a href="https://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/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerDescription</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3449">listReplicationPeers</a>(<a href="https://docs.oracle.com/ja [...]
+<pre>public&nbsp;<a href="https://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/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerDescription</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3448">listReplicationPeers</a>(<a href="https://docs.oracle.com/ja [...]
                                                       throws <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a>,
                                                              <a href="https://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/master/MasterServices.html#listReplicationPeers-java.lang.String-">MasterServices</a></code></span></div>
@@ -4851,7 +4851,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>transitReplicationPeerSyncReplicationState</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3465">transitReplicationPeerSyncReplicationState</a>(<a href="https://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;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3464">transitReplicationPeerSyncReplicationState</a>(<a href="https://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/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication">SyncReplicationState</a>&nbsp;state)
                                                 throws <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationException.html" title="class in org.apache.hadoop.hbase.replication">ReplicationException</a>,
                                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4875,7 +4875,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>decommissionRegionServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3479">decommissionRegionServers</a>(<a href="https://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/HMaster.html#line.3478">decommissionRegionServers</a>(<a href="https://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="https://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">Mark region server(s) as decommissioned (previously called 'draining') to prevent additional
@@ -4894,7 +4894,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>listDecommissionedRegionServers</h4>
-<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.3518">listDecommissionedRegionServers</a>()</pre>
+<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.3517">listDecommissionedRegionServers</a>()</pre>
 <div class="block">List region servers marked as decommissioned (previously called 'draining') to not get regions
  assigned to them.</div>
 <dl>
@@ -4909,7 +4909,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>recommissionRegionServer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3527">recommissionRegionServer</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3526">recommissionRegionServer</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
                                      <a href="https://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)
                               throws <a href="https://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 decommission marker (previously called 'draining') from a region server to allow regions
@@ -4928,7 +4928,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getLockManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockManager.html" title="class in org.apache.hadoop.hbase.master.locking">LockManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3566">getLockManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/locking/LockManager.html" title="class in org.apache.hadoop.hbase.master.locking">LockManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3565">getLockManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getLockManager--">getLockManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4943,7 +4943,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getQuotaObserverChore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas">QuotaObserverChore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3570">getQuotaObserverChore</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas">QuotaObserverChore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3569">getQuotaObserverChore</a>()</pre>
 </li>
 </ul>
 <a name="getSpaceQuotaSnapshotNotifier--">
@@ -4952,7 +4952,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getSpaceQuotaSnapshotNotifier</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotNotifier</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3574">getSpaceQuotaSnapshotNotifier</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshotNotifier.html" title="interface in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshotNotifier</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3573">getSpaceQuotaSnapshotNotifier</a>()</pre>
 </li>
 </ul>
 <a name="getRemoteProcedure-long-">
@@ -4961,7 +4961,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getRemoteProcedure</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.RemoteProcedure.html" title="interface in org.apache.hadoop.hbase.procedure2">RemoteProcedureDispatcher.RemoteProcedure</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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#lin [...]
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureDispatcher.RemoteProcedure.html" title="interface in org.apache.hadoop.hbase.procedure2">RemoteProcedureDispatcher.RemoteProcedure</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;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#lin [...]
 </li>
 </ul>
 <a name="remoteProcedureCompleted-long-">
@@ -4970,7 +4970,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>remoteProcedureCompleted</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3588">remoteProcedureCompleted</a>(long&nbsp;procId)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3587">remoteProcedureCompleted</a>(long&nbsp;procId)</pre>
 </li>
 </ul>
 <a name="remoteProcedureFailed-long-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">
@@ -4979,7 +4979,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>remoteProcedureFailed</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3596">remoteProcedureFailed</a>(long&nbsp;procId,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3595">remoteProcedureFailed</a>(long&nbsp;procId,
                                   <a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a>&nbsp;error)</pre>
 </li>
 </ul>
@@ -4989,7 +4989,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>reopenRegions</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3615">reopenRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3614">reopenRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                    <a href="https://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;regionNames,
                    long&nbsp;nonceGroup,
                    long&nbsp;nonce)
@@ -5015,7 +5015,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationPeerManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.html" title="class in org.apache.hadoop.hbase.master.replication">ReplicationPeerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3637">getReplicationPeerManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.html" title="class in org.apache.hadoop.hbase.master.replication">ReplicationPeerManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3636">getReplicationPeerManager</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getReplicationPeerManager--">MasterServices</a></code></span></div>
 <div class="block">Returns the <a href="../../../../../org/apache/hadoop/hbase/master/replication/ReplicationPeerManager.html" title="class in org.apache.hadoop.hbase.master.replication"><code>ReplicationPeerManager</code></a>.</div>
 <dl>
@@ -5030,7 +5030,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationLoad</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://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="https://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/hba [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://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="https://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/hba [...]
 </li>
 </ul>
 <a name="decorateMasterConfiguration-org.apache.hadoop.conf.Configuration-">
@@ -5040,7 +5040,7 @@ public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/m
 <li class="blockList">
 <h4>decorateMasterConfiguration</h4>
 <pre>@InterfaceAudience.Private
-public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3678">decorateMasterConfiguration</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3677">decorateMasterConfiguration</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">This method modifies the master's configuration in order to inject replication-related features</div>
 </li>
 </ul>
@@ -5050,7 +5050,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>getSnapshotQuotaObserverChore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas">SnapshotQuotaObserverChore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3693">getSnapshotQuotaObserverChore</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SnapshotQuotaObserverChore.html" title="class in org.apache.hadoop.hbase.quotas">SnapshotQuotaObserverChore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3692">getSnapshotQuotaObserverChore</a>()</pre>
 </li>
 </ul>
 <a name="getSyncReplicationReplayWALManager--">
@@ -5059,7 +5059,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>getSyncReplicationReplayWALManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALManager.html" title="class in org.apache.hadoop.hbase.master.replication">SyncReplicationReplayWALManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3698">getSyncReplicationReplayWALManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALManager.html" title="class in org.apache.hadoop.hbase.master.replication">SyncReplicationReplayWALManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3697">getSyncReplicationReplayWALManager</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getSyncReplicationReplayWALManager--">MasterServices</a></code></span></div>
 <div class="block">Returns the <a href="../../../../../org/apache/hadoop/hbase/master/replication/SyncReplicationReplayWALManager.html" title="class in org.apache.hadoop.hbase.master.replication"><code>SyncReplicationReplayWALManager</code></a>.</div>
 <dl>
@@ -5074,7 +5074,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>getWalGroupsReplicationStatus</h4>
-<pre>public&nbsp;<a href="https://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="https://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/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>&gt;&nbsp; [...]
+<pre>public&nbsp;<a href="https://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="https://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/replication/regionserver/ReplicationStatus.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationStatus</a>&gt;&nbsp; [...]
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getWalGroupsReplicationStatus--">getWalGroupsReplicationStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -5087,7 +5087,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>getHbckChore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HbckChore.html" title="class in org.apache.hadoop.hbase.master">HbckChore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3710">getHbckChore</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HbckChore.html" title="class in org.apache.hadoop.hbase.master">HbckChore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3709">getHbckChore</a>()</pre>
 </li>
 </ul>
 <a name="getClusterId--">
@@ -5096,7 +5096,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterId</h4>
-<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.3715">getClusterId</a>()</pre>
+<pre>public&nbsp;<a href="https://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/master/HMaster.html#line.3714">getClusterId</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#getClusterId--">getClusterId</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></code></dd>
@@ -5109,7 +5109,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveMaster</h4>
-<pre>public&nbsp;<a href="https://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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3722">getActiveMaster</a>()</pre>
+<pre>public&nbsp;<a href="https://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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3721">getActiveMaster</a>()</pre>
 </li>
 </ul>
 <a name="runReplicationBarrierCleaner--">
@@ -5118,7 +5118,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>runReplicationBarrierCleaner</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3727">runReplicationBarrierCleaner</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3726">runReplicationBarrierCleaner</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#runReplicationBarrierCleaner--">MasterServices</a></code></span></div>
 <div class="block">Run the ReplicationBarrierChore.</div>
 <dl>
@@ -5133,7 +5133,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaRegionLocationCache</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MetaRegionLocationCache.html" title="class in org.apache.hadoop.hbase.master">MetaRegionLocationCache</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3734">getMetaRegionLocationCache</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MetaRegionLocationCache.html" title="class in org.apache.hadoop.hbase.master">MetaRegionLocationCache</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3733">getMetaRegionLocationCache</a>()</pre>
 </li>
 </ul>
 <a name="getRSGroupInfoManager--">
@@ -5142,7 +5142,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSGroupInfoManager</h4>
-<pre>public&nbsp;<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/master/HMaster.html#line.3739">getRSGroupInfoManager</a>()</pre>
+<pre>public&nbsp;<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/master/HMaster.html#line.3738">getRSGroupInfoManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getRSGroupInfoManager--">getRSGroupInfoManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -5157,7 +5157,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionState</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3749">getCompactionState</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3748">getCompactionState</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Get the compaction state of the table</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -5173,7 +5173,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMetaLocationSyncer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/zksyncer/MetaLocationSyncer.html" title="class in org.apache.hadoop.hbase.master.zksyncer">MetaLocationSyncer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3787">getMetaLocationSyncer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/zksyncer/MetaLocationSyncer.html" title="class in org.apache.hadoop.hbase.master.zksyncer">MetaLocationSyncer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3786">getMetaLocationSyncer</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMetaLocationSyncer--">MasterServices</a></code></span></div>
 <div class="block">Get the meta location syncer.
  <p/>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HbckChore.html b/devapidocs/org/apache/hadoop/hbase/master/HbckChore.html
index 0e7f185..c1f5b88 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HbckChore.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HbckChore.html
@@ -655,7 +655,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>loadRegionsFromRSReport</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.237">loadRegionsFromRSReport</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.260">loadRegionsFromRSReport</a>()</pre>
 </li>
 </ul>
 <a name="loadRegionsFromFS-java.util.HashSet-">
@@ -664,7 +664,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>loadRegionsFromFS</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.286">loadRegionsFromFS</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://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;mergedParentRegions)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.309">loadRegionsFromFS</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://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;mergedParentRegions)
                         throws <a href="https://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>
@@ -678,7 +678,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>updateAssignmentManagerMetrics</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.314">updateAssignmentManagerMetrics</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.337">updateAssignmentManagerMetrics</a>()</pre>
 </li>
 </ul>
 <a name="isRunning--">
@@ -687,7 +687,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>isRunning</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.326">isRunning</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.349">isRunning</a>()</pre>
 <div class="block">When running, the HBCK report may be changed later.</div>
 </li>
 </ul>
@@ -697,7 +697,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrphanRegionsOnRS</h4>
-<pre>public&nbsp;<a href="https://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="https://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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ [...]
+<pre>public&nbsp;<a href="https://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="https://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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/ [...]
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the regions only opened on RegionServers, but no region info in meta.</dd>
@@ -710,7 +710,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrphanRegionsOnFS</h4>
-<pre>public&nbsp;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.346">getOrphanRegionsOnFS</a>()</pre>
+<pre>public&nbsp;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.369">getOrphanRegionsOnFS</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the regions have directory on FileSystem, but no region info in meta.</dd>
@@ -723,7 +723,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>getInconsistentRegions</h4>
-<pre>public&nbsp;<a href="https://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="https://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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title=" [...]
+<pre>public&nbsp;<a href="https://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="https://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/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title=" [...]
 <div class="block">Found the inconsistent regions. There are three case:
  case 1. Master thought this region opened, but no regionserver reported it.
  case 2. Master thought this region opened on Server1, but regionserver reported Server2
@@ -741,7 +741,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>getCheckingStartTimestamp</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.378">getCheckingStartTimestamp</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.401">getCheckingStartTimestamp</a>()</pre>
 <div class="block">Used for web ui to show when the HBCK checking started.</div>
 </li>
 </ul>
@@ -751,7 +751,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getCheckingEndTimestamp</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.385">getCheckingEndTimestamp</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HbckChore.html#line.408">getCheckingEndTimestamp</a>()</pre>
 <div class="block">Used for web ui to show when the HBCK checking report generated.</div>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/LoadBalancer.html b/devapidocs/org/apache/hadoop/hbase/master/LoadBalancer.html
index 80ef68c..bff12ca 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/LoadBalancer.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/LoadBalancer.html
@@ -101,7 +101,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Superinterfaces:</dt>
-<dd>org.apache.hadoop.conf.Configurable, <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
+<dd><a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
 </dl>
 <dl>
 <dt>All Known Implementing Classes:</dt>
@@ -110,8 +110,8 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.48">LoadBalancer</a>
-extends org.apache.hadoop.conf.Configurable, <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>, <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></pre>
+public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.47">LoadBalancer</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>, <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></pre>
 <div class="block">Makes decisions about the placement and movement of Regions across RegionServers.
  <p/>
  Cluster-wide load balancing will occur only when there are no regions in transition and according
@@ -245,13 +245,6 @@ extends org.apache.hadoop.conf.Configurable, <a href="../../../../../org/apache/
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.conf.Configurable">
-<!--   -->
-</a>
-<h3>Methods inherited from interface&nbsp;org.apache.hadoop.conf.Configurable</h3>
-<code>getConf, setConf</code></li>
-</ul>
-<ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.Stoppable">
 <!--   -->
 </a>
@@ -278,7 +271,7 @@ extends org.apache.hadoop.conf.Configurable, <a href="../../../../../org/apache/
 <ul class="blockList">
 <li class="blockList">
 <h4>BOGUS_SERVER_NAME</h4>
-<pre>static final&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/master/LoadBalancer.html#line.52">BOGUS_SERVER_NAME</a></pre>
+<pre>static final&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/master/LoadBalancer.html#line.51">BOGUS_SERVER_NAME</a></pre>
 </li>
 </ul>
 <a name="HBASE_RSGROUP_LOADBALANCER_CLASS">
@@ -288,7 +281,7 @@ extends org.apache.hadoop.conf.Configurable, <a href="../../../../../org/apache/
 <li class="blockList">
 <h4>HBASE_RSGROUP_LOADBALANCER_CLASS</h4>
 <pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-static final&nbsp;<a href="https://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/master/LoadBalancer.html#line.62">HBASE_RSGROUP_LOADBALANCER_CLASS</a></pre>
+static final&nbsp;<a href="https://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/master/LoadBalancer.html#line.61">HBASE_RSGROUP_LOADBALANCER_CLASS</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 3.0.0, will be removed in 4.0.0. In the new implementation, as the base load
              balancer will always be the rs group based one, you should just use
              <a href="../../../../../org/apache/hadoop/hbase/HConstants.html#HBASE_MASTER_LOADBALANCER_CLASS"><code>HConstants.HBASE_MASTER_LOADBALANCER_CLASS</code></a> to
@@ -314,7 +307,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterMetrics</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.66">setClusterMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;st)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.65">setClusterMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;st)</pre>
 <div class="block">Set the current cluster status. This allows a LoadBalancer to map host name to a server</div>
 </li>
 </ul>
@@ -324,7 +317,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterInfoProvider</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.72">setClusterInfoProvider</a>(<a href="../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a>&nbsp;provider)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.71">setClusterInfoProvider</a>(<a href="../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a>&nbsp;provider)</pre>
 <div class="block">Set the cluster info provider. Usually it is just a wrapper of master.</div>
 </li>
 </ul>
@@ -334,7 +327,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceCluster</h4>
-<pre><a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.80">balanceCluster</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" titl [...]
+<pre><a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.79">balanceCluster</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" titl [...]
                          throws <a href="https://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">Perform the major balance operation for cluster.</div>
 <dl>
@@ -355,7 +348,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <li class="blockList">
 <h4>roundRobinAssignment</h4>
 <pre>@NonNull
-<a href="https://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="https://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 [...]
+<a href="https://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="https://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 [...]
                                                                <a href="https://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)
                                                         throws <a href="https://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">Perform a Round Robin assignment of regions.</div>
@@ -374,7 +367,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <li class="blockList">
 <h4>retainAssignment</h4>
 <pre>@NonNull
-<a href="https://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="https://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 [...]
+<a href="https://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="https://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 [...]
                                                            <a href="https://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)
                                                     throws <a href="https://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">Assign regions to the previously hosting region server</div>
@@ -392,7 +385,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <ul class="blockList">
 <li class="blockList">
 <h4>randomAssignment</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.103">randomAssignment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre><a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.102">randomAssignment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                             <a href="https://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)
                      throws <a href="https://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">Get a random region server from the list</div>
@@ -410,7 +403,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <ul class="blockList">
 <li class="blockList">
 <h4>initialize</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.108">initialize</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.107">initialize</a>()
          throws <a href="https://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">Initialize the load balancer. Must be called after setters.</div>
 <dl>
@@ -425,7 +418,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOnline</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.113">regionOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.112">regionOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                   <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <div class="block">Marks the region as online at balancer.</div>
 </li>
@@ -436,7 +429,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOffline</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.118">regionOffline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.117">regionOffline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
 <div class="block">Marks the region as offline at balancer.</div>
 </li>
 </ul>
@@ -446,7 +439,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.124">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.123">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Notification that config has changed</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -460,7 +453,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <ul class="blockList">
 <li class="blockList">
 <h4>postMasterStartupInitialize</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.129">postMasterStartupInitialize</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.128">postMasterStartupInitialize</a>()</pre>
 <div class="block">If balancer needs to do initialization after Master has started up, lets do that here.</div>
 </li>
 </ul>
@@ -470,7 +463,7 @@ static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/S
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updateBalancerStatus</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.132">updateBalancerStatus</a>(boolean&nbsp;status)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/LoadBalancer.html#line.131">updateBalancerStatus</a>(boolean&nbsp;status)</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html
index 53a3e51..66482be 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>org.apache.hadoop.conf.Configurable, <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
 </dl>
 <dl>
 <dt>Direct Known Subclasses:</dt>
@@ -155,62 +155,58 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#clusterStatus">clusterStatus</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>protected org.apache.hadoop.conf.Configuration</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#config">config</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#DEFAULT_BALANCER_DECISION_BUFFER_ENABLED">DEFAULT_BALANCER_DECISION_BUFFER_ENABLED</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#DEFAULT_BALANCER_REJECTION_BUFFER_ENABLED">DEFAULT_BALANCER_REJECTION_BUFFER_ENABLED</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#isByTable">isByTable</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#masterServerName">masterServerName</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MetricsBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsBalancer</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#metricsBalancer">metricsBalancer</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#MIN_SERVER_BALANCE">MIN_SERVER_BALANCE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected float</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#overallSlop">overallSlop</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#provider">provider</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/master/RackManager.html" title="class in org.apache.hadoop.hbase.master">RackManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#rackManager">rackManager</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/RegionHDFSBlockLocationFinder.html" title="class in org.apache.hadoop.hbase.master.balancer">RegionHDFSBlockLocationFinder</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#regionFinder">regionFinder</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected float</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#slop">slop</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#stopped">stopped</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#useRegionFinder">useRegionFinder</a></span></code>&nbsp;</td>
 </tr>
@@ -296,7 +292,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#findIdleServers-java.util.List-">findIdleServers</a></span>(<a href="https://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 [...]
 </tr>
 <tr id="i5" class="rowColor">
-<td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
+<td class="colFirst"><code>protected org.apache.hadoop.conf.Configuration</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#getConf--">getConf</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i6" class="altColor">
@@ -407,7 +403,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 </td>
 </tr>
 <tr id="i23" class="rowColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#setConf-org.apache.hadoop.conf.Configuration-">setConf</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
 <tr id="i24" class="altColor">
@@ -584,22 +580,13 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <pre>protected&nbsp;float <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.80">overallSlop</a></pre>
 </li>
 </ul>
-<a name="config">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>config</h4>
-<pre>protected&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.81">config</a></pre>
-</li>
-</ul>
 <a name="rackManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>rackManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RackManager.html" title="class in org.apache.hadoop.hbase.master">RackManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.82">rackManager</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RackManager.html" title="class in org.apache.hadoop.hbase.master">RackManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.81">rackManager</a></pre>
 </li>
 </ul>
 <a name="metricsBalancer">
@@ -608,7 +595,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>metricsBalancer</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MetricsBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsBalancer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.83">metricsBalancer</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MetricsBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsBalancer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.82">metricsBalancer</a></pre>
 </li>
 </ul>
 <a name="clusterStatus">
@@ -617,7 +604,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterStatus</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.84">clusterStatus</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.83">clusterStatus</a></pre>
 </li>
 </ul>
 <a name="masterServerName">
@@ -626,7 +613,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>masterServerName</h4>
-<pre>protected&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/master/balancer/BaseLoadBalancer.html#line.85">masterServerName</a></pre>
+<pre>protected&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/master/balancer/BaseLoadBalancer.html#line.84">masterServerName</a></pre>
 </li>
 </ul>
 <a name="provider">
@@ -635,7 +622,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockListLast">
 <li class="blockList">
 <h4>provider</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.86">provider</a></pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.85">provider</a></pre>
 </li>
 </ul>
 </li>
@@ -652,7 +639,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>BaseLoadBalancer</h4>
-<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.91">BaseLoadBalancer</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.90">BaseLoadBalancer</a>()</pre>
 <div class="block">The constructor that uses the basic MetricsBalancer</div>
 </li>
 </ul>
@@ -662,7 +649,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BaseLoadBalancer</h4>
-<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.99">BaseLoadBalancer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MetricsBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsBalancer</a>&nbsp;metricsBalancer)</pre>
+<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.98">BaseLoadBalancer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MetricsBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsBalancer</a>&nbsp;metricsBalancer)</pre>
 <div class="block">This Constructor accepts an instance of MetricsBalancer,
  which will be used instead of creating a new one</div>
 </li>
@@ -675,39 +662,31 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="setConf-org.apache.hadoop.conf.Configuration-">
+<a name="getConf--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setConf</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.104">setConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>setConf</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.conf.Configurable</code></dd>
-</dl>
+<h4>getConf</h4>
+<pre>protected final&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.102">getConf</a>()</pre>
 </li>
 </ul>
-<a name="setSlop-org.apache.hadoop.conf.Configuration-">
+<a name="setConf-org.apache.hadoop.conf.Configuration-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setSlop</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.130">setSlop</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<h4>setConf</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.106">setConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
-<a name="getConf--">
+<a name="setSlop-org.apache.hadoop.conf.Configuration-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getConf</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.136">getConf</a>()</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>getConf</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.conf.Configurable</code></dd>
-</dl>
+<h4>setSlop</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.131">setSlop</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="setClusterMetrics-org.apache.hadoop.hbase.ClusterMetrics-">
@@ -716,7 +695,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterMetrics</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.141">setClusterMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;st)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.137">setClusterMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;st)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#setClusterMetrics-org.apache.hadoop.hbase.ClusterMetrics-">LoadBalancer</a></code></span></div>
 <div class="block">Set the current cluster status. This allows a LoadBalancer to map host name to a server</div>
 <dl>
@@ -731,7 +710,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterInfoProvider</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.150">setClusterInfoProvider</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a>&nbsp;provider)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.146">setClusterInfoProvider</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a>&nbsp;provider)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#setClusterInfoProvider-org.apache.hadoop.hbase.master.balancer.ClusterInfoProvider-">LoadBalancer</a></code></span></div>
 <div class="block">Set the cluster info provider. Usually it is just a wrapper of master.</div>
 <dl>
@@ -746,7 +725,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>postMasterStartupInitialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.158">postMasterStartupInitialize</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.155">postMasterStartupInitialize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#postMasterStartupInitialize--">LoadBalancer</a></code></span></div>
 <div class="block">If balancer needs to do initialization after Master has started up, lets do that here.</div>
 <dl>
@@ -761,7 +740,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>setRackManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.164">setRackManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/RackManager.html" title="class in org.apache.hadoop.hbase.master">RackManager</a>&nbsp;rackManager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.161">setRackManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/RackManager.html" title="class in org.apache.hadoop.hbase.master">RackManager</a>&nbsp;rackManager)</pre>
 </li>
 </ul>
 <a name="needsBalance-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.master.balancer.BalancerClusterState-">
@@ -770,7 +749,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>needsBalance</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.168">needsBalance</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.165">needsBalance</a>(<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/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;c)</pre>
 </li>
 </ul>
@@ -780,7 +759,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>areSomeRegionReplicasColocated</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.211">areSomeRegionReplicasColocated</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;c)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.208">areSomeRegionReplicasColocated</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;c)</pre>
 <div class="block">Subclasses should implement this to return true if the cluster has nodes that hosts
  multiple replicas for the same region, or, if there are multiple racks and the same
  rack hosts replicas of the same region</div>
@@ -798,7 +777,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>idleRegionServerExist</h4>
-<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.215">idleRegionServerExist</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;c)</pre>
+<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.212">idleRegionServerExist</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;c)</pre>
 </li>
 </ul>
 <a name="roundRobinAssignment-java.util.List-java.util.List-">
@@ -808,7 +787,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <li class="blockList">
 <h4>roundRobinAssignment</h4>
 <pre>@NonNull
-public&nbsp;<a href="https://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="https://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" t [...]
+public&nbsp;<a href="https://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="https://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" t [...]
                                                                       <a href="https://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)
                                                                throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block">Generates a bulk assignment plan to be used on cluster startup using a
@@ -841,7 +820,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>createCluster</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.272">createCluster</a>(<a href="https://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="../../../../../.. [...]
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.269">createCluster</a>(<a href="https://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="../../../../../.. [...]
                                            <a href="https://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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions)
                                     throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <dl>
@@ -856,7 +835,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>findIdleServers</h4>
-<pre>private&nbsp;<a href="https://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/master/balancer/BaseLoadBalancer.html#line.304">findIdleServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?i [...]
+<pre>private&nbsp;<a href="https://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/master/balancer/BaseLoadBalancer.html#line.301">findIdleServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?i [...]
 </li>
 </ul>
 <a name="randomAssignment-org.apache.hadoop.hbase.client.RegionInfo-java.util.List-">
@@ -865,7 +844,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>randomAssignment</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.313">randomAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.310">randomAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                                    <a href="https://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)
                             throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block">Used to assign a single region to a random server.</div>
@@ -886,7 +865,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <li class="blockList">
 <h4>retainAssignment</h4>
 <pre>@NonNull
-public&nbsp;<a href="https://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="https://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" t [...]
+public&nbsp;<a href="https://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="https://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" t [...]
                                                                   <a href="https://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)
                                                            throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block">Generates a bulk assignment startup plan, attempting to reuse the existing
@@ -920,7 +899,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>initialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.463">initialize</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.460">initialize</a>()
                 throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#initialize--">LoadBalancer</a></code></span></div>
 <div class="block">Initialize the load balancer. Must be called after setters.</div>
@@ -938,7 +917,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOnline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.467">regionOnline</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.464">regionOnline</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                          <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOnline-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">LoadBalancer</a></code></span></div>
 <div class="block">Marks the region as online at balancer.</div>
@@ -954,7 +933,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOffline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.471">regionOffline</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.468">regionOffline</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOffline-org.apache.hadoop.hbase.client.RegionInfo-">LoadBalancer</a></code></span></div>
 <div class="block">Marks the region as offline at balancer.</div>
 <dl>
@@ -969,7 +948,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.475">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.472">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>
@@ -984,7 +963,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.480">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.477">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
 <div class="block">Stop this service.
  Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -1002,7 +981,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>updateBalancerStatus</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.489">updateBalancerStatus</a>(boolean&nbsp;status)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.486">updateBalancerStatus</a>(boolean&nbsp;status)</pre>
 <div class="block">Updates the balancer status tag reported to JMX</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1016,7 +995,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>randomAssignment</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.496">randomAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.493">randomAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
                                     <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                                     <a href="https://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>
 <div class="block">Used to assign a single region to a random server.</div>
@@ -1028,7 +1007,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>roundRobinAssignment</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.533">roundRobinAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.530">roundRobinAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
                                   <a href="https://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;&nbsp;regions,
                                   <a href="https://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="https://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="https://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/cli [...]
@@ -1041,7 +1020,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionAssignmentsByServer</h4>
-<pre>private&nbsp;<a href="https://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="https://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.h [...]
+<pre>private&nbsp;<a href="https://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="https://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.h [...]
 </li>
 </ul>
 <a name="toEnsumbleTableLoad-java.util.Map-">
@@ -1050,7 +1029,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>toEnsumbleTableLoad</h4>
-<pre>private&nbsp;<a href="https://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="https://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.h [...]
+<pre>private&nbsp;<a href="https://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="https://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.h [...]
 </li>
 </ul>
 <a name="balanceTable-org.apache.hadoop.hbase.TableName-java.util.Map-">
@@ -1059,7 +1038,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceTable</h4>
-<pre>protected abstract&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.625">balanceTable</a>(<a href="../../../../../../org/apache/hadoop/hbase [...]
+<pre>protected abstract&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.622">balanceTable</a>(<a href="../../../../../../org/apache/hadoop/hbase [...]
                                                  <a href="https://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="https://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/h [...]
 <div class="block">Perform the major balance operation for table, all sub classes should override this method.
  <p/>
@@ -1083,7 +1062,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>preBalanceCluster</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.633">preBalanceCluster</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?i [...]
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.630">preBalanceCluster</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?i [...]
 <div class="block">Called before actually executing balanceCluster. The sub classes could override this method to
  do some initialization work.</div>
 </li>
@@ -1094,7 +1073,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceCluster</h4>
-<pre>public final&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.649">balanceCluster</a>(<a href="https://docs.oracle.com/javase/8/docs/api/jav [...]
+<pre>public final&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.646">balanceCluster</a>(<a href="https://docs.oracle.com/javase/8/docs/api/jav [...]
 <div class="block">Perform the major balance operation for cluster, will invoke
  <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#balanceTable-org.apache.hadoop.hbase.TableName-java.util.Map-"><code>balanceTable(TableName, Map)</code></a> to do actual balance.
  <p/>
@@ -1119,7 +1098,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.668">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#line.665">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">LoadBalancer</a></code></span></div>
 <div class="block">Notification that config has changed</div>
 <dl>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html
index bf814e6..e0b8755 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -142,31 +142,37 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/mas
 </td>
 </tr>
 <tr id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Get the configuration.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getNumberOfTables--">getNumberOfTables</a></span>()</code>
 <div class="block">Returns the number of tables on this cluster.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="https://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"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getOnlineServersListWithPredicator-java.util.List-java.util.function.Predicate-">getOnlineServersListWithPredicator</a></span>(<a href="https://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="cl [...]
                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&gt;&nbsp;filter)</code>
 <div class="block">Returns a copy of the internal list of online servers matched by the given <code>filter</code>.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="https://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="https://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/Reg [...]
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getSnapShotOfAssignment-java.util.Collection-">getSnapShotOfAssignment</a></span>(<a href="https://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/client/RegionInfo.html" title="interface in org.apache.hado [...]
 <div class="block">Get a snapshot of the current assignment status.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getTableDescriptor-org.apache.hadoop.hbase.TableName-">getTableDescriptor</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">Get the table descriptor for the given table.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#hasRegionReplica-java.util.Collection-">hasRegionReplica</a></span>(<a href="https://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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.clien [...]
 <div class="block">Check whether we have region replicas enabled for the tables of the given regions.</div>
@@ -187,13 +193,23 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/mas
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.44">getConfiguration</a>()</pre>
+<div class="block">Get the configuration.</div>
+</li>
+</ul>
 <a name="getAssignedRegions--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getAssignedRegions</h4>
-<pre><a href="https://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;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.46">getAssignedRegions</a>()</pre>
+<pre><a href="https://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;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.51">getAssignedRegions</a>()</pre>
 <div class="block">Get all the regions of this cluster.
  <p/>
  Used to refresh region block locations on HDFS.</div>
@@ -205,7 +221,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/mas
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptor</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.51">getTableDescriptor</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.56">getTableDescriptor</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                             throws <a href="https://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">Get the table descriptor for the given table.</div>
 <dl>
@@ -220,7 +236,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/mas
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumberOfTables</h4>
-<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.56">getNumberOfTables</a>()
+<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.61">getNumberOfTables</a>()
                throws <a href="https://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">Returns the number of tables on this cluster.</div>
 <dl>
@@ -235,7 +251,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/mas
 <ul class="blockList">
 <li class="blockList">
 <h4>computeHDFSBlocksDistribution</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.63">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre><a href="../../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.68">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                      <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                                                      <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)
                                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -254,7 +270,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/mas
 <ul class="blockList">
 <li class="blockList">
 <h4>hasRegionReplica</h4>
-<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.69">hasRegionReplica</a>(<a href="https://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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions)
+<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#line.74">hasRegionReplica</a>(<a href="https://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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions)
                   throws <a href="https://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">Check whether we have region replicas enabled for the tables of the given regions.</div>
 <dl>
@@ -269,7 +285,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/mas
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineServersListWithPredicator</h4>
-<pre><a href="https://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/master/balancer/ClusterInfoProvider.html#line.74">getOnlineServersListWithPredicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Lis [...]
+<pre><a href="https://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/master/balancer/ClusterInfoProvider.html#line.79">getOnlineServersListWithPredicator</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Lis [...]
                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&gt;&nbsp;filter)</pre>
 <div class="block">Returns a copy of the internal list of online servers matched by the given <code>filter</code>.</div>
 </li>
@@ -280,7 +296,7 @@ public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/mas
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getSnapShotOfAssignment</h4>
-<pre><a href="https://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="https://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="i [...]
+<pre><a href="https://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="https://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="i [...]
 <div class="block">Get a snapshot of the current assignment status.</div>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html
index eac9013..c3bbabf 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.596">FavoredStochasticBalancer.FavoredNodeLoadPicker</a>
+<pre>class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.598">FavoredStochasticBalancer.FavoredNodeLoadPicker</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/CandidateGenerator.html" title="class in org.apache.hadoop.hbase.master.balancer">CandidateGenerator</a></pre>
 </li>
 </ul>
@@ -209,7 +209,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Candi
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FavoredNodeLoadPicker</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html#line.596">FavoredNodeLoadPicker</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html#line.598">FavoredNodeLoadPicker</a>()</pre>
 </li>
 </ul>
 </li>
@@ -226,7 +226,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Candi
 <ul class="blockList">
 <li class="blockList">
 <h4>generate</h4>
-<pre><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalanceAction.html" title="class in org.apache.hadoop.hbase.master.balancer">BalanceAction</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html#line.599">generate</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterSt [...]
+<pre><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalanceAction.html" title="class in org.apache.hadoop.hbase.master.balancer">BalanceAction</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html#line.601">generate</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterSt [...]
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/CandidateGenerator.html#generate-org.apache.hadoop.hbase.master.balancer.BalancerClusterState-">generate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/CandidateGenerator.html" title="class in org.apache.hadoop.hbase.master.balancer">CandidateGenerator</a></code></dd>
@@ -239,7 +239,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Candi
 <ul class="blockList">
 <li class="blockList">
 <h4>pickLeastLoadedServer</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html#line.618">pickLeastLoadedServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html#line.620">pickLeastLoadedServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
                                   int&nbsp;thisServer)</pre>
 </li>
 </ul>
@@ -249,7 +249,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Candi
 <ul class="blockList">
 <li class="blockList">
 <h4>pickLeastLoadedFNServer</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html#line.629">pickLeastLoadedFNServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html#line.631">pickLeastLoadedFNServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
                                     <a href="https://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;favoredNodes,
                                     int&nbsp;currentServerIndex)</pre>
 </li>
@@ -260,7 +260,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Candi
 <ul class="blockListLast">
 <li class="blockList">
 <h4>pickMostLoadedServer</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html#line.651">pickMostLoadedServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster)</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLoadPicker.html#line.653">pickMostLoadedServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster)</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html
index e362f11..f57cb1b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.525">FavoredStochasticBalancer.FavoredNodeLocalityPicker</a>
+<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.527">FavoredStochasticBalancer.FavoredNodeLocalityPicker</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/CandidateGenerator.html" title="class in org.apache.hadoop.hbase.master.balancer">CandidateGenerator</a></pre>
 </li>
 </ul>
@@ -207,7 +207,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Candi
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FavoredNodeLocalityPicker</h4>
-<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html#line.525">FavoredNodeLocalityPicker</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html#line.527">FavoredNodeLocalityPicker</a>()</pre>
 </li>
 </ul>
 </li>
@@ -224,7 +224,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Candi
 <ul class="blockList">
 <li class="blockList">
 <h4>generate</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalanceAction.html" title="class in org.apache.hadoop.hbase.master.balancer">BalanceAction</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html#line.528">generate</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer [...]
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalanceAction.html" title="class in org.apache.hadoop.hbase.master.balancer">BalanceAction</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html#line.530">generate</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer [...]
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/CandidateGenerator.html#generate-org.apache.hadoop.hbase.master.balancer.BalancerClusterState-">generate</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/CandidateGenerator.html" title="class in org.apache.hadoop.hbase.master.balancer">CandidateGenerator</a></code></dd>
@@ -237,7 +237,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Candi
 <ul class="blockList">
 <li class="blockList">
 <h4>getDifferentFavoredNode</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html#line.565">getDifferentFavoredNode</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html#line.567">getDifferentFavoredNode</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
                                     <a href="https://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;favoredNodes,
                                     int&nbsp;currentServer)</pre>
 </li>
@@ -248,7 +248,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Candi
 <ul class="blockListLast">
 <li class="blockList">
 <h4>pickLowestLocalRegionOnServer</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html#line.587">pickLowestLocalRegionOnServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.FavoredNodeLocalityPicker.html#line.589">pickLowestLocalRegionOnServer</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BalancerClusterState.html" title="class in org.apache.hadoop.hbase.master.balancer">BalancerClusterState</a>&nbsp;cluster,
                                           int&nbsp;server)</pre>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html
index 578a7d9..3076cd0 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html
@@ -119,12 +119,12 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>org.apache.hadoop.conf.Configurable, <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPromoter.html" title="interface in org.apache.hadoop.hbase.favored">FavoredNodesPromoter</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.mast [...]
+<dd><a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPromoter.html" title="interface in org.apache.hadoop.hbase.favored">FavoredNodesPromoter</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../ [...]
 </dl>
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.75">FavoredStochasticBalancer</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.76">FavoredStochasticBalancer</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">StochasticLoadBalancer</a>
 implements <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPromoter.html" title="interface in org.apache.hadoop.hbase.favored">FavoredNodesPromoter</a></pre>
 <div class="block">An implementation of the <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><code>LoadBalancer</code></a> that
@@ -205,7 +205,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNod
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_DECISION_BUFFER_ENABLED">BALANCER_DECISION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_REJECTION_BUFFER_ENABLED">BALANCER_REJECTION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#clusterStatus">clusterStatus</a>, <a href="../../../../../../org/apache/h [...]
+<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_DECISION_BUFFER_ENABLED">BALANCER_DECISION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_REJECTION_BUFFER_ENABLED">BALANCER_REJECTION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#clusterStatus">clusterStatus</a>, <a href="../../../../../../org/apache/h [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.favored.FavoredNodesPromoter">
@@ -415,7 +415,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNod
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.78">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.79">LOG</a></pre>
 </li>
 </ul>
 <a name="fnm">
@@ -424,7 +424,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNod
 <ul class="blockList">
 <li class="blockList">
 <h4>fnm</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.79">fnm</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.80">fnm</a></pre>
 </li>
 </ul>
 <a name="services">
@@ -433,7 +433,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNod
 <ul class="blockListLast">
 <li class="blockList">
 <h4>services</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/master/balancer/FavoredStochasticBalancer.html#line.80">services</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/master/balancer/FavoredStochasticBalancer.html#line.81">services</a></pre>
 </li>
 </ul>
 </li>
@@ -450,7 +450,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNod
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FavoredStochasticBalancer</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.75">FavoredStochasticBalancer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.76">FavoredStochasticBalancer</a>()</pre>
 </li>
 </ul>
 </li>
@@ -467,7 +467,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNod
 <ul class="blockList">
 <li class="blockList">
 <h4>setMasterServices</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.82">setMasterServices</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;services)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.83">setMasterServices</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;services)</pre>
 </li>
 </ul>
 <a name="initialize--">
@@ -476,7 +476,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNod
 <ul class="blockList">
 <li class="blockList">
 <h4>initialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.88">initialize</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.89">initialize</a>()
                 throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#initialize--">LoadBalancer</a></code></span></div>
 <div class="block">Initialize the load balancer. Must be called after setters.</div>
@@ -496,7 +496,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNod
 <ul class="blockList">
 <li class="blockList">
 <h4>configureGenerators</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.93">configureGenerators</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.94">configureGenerators</a>()</pre>
 </li>
 </ul>
 <a name="roundRobinAssignment-java.util.List-java.util.List-">
@@ -506,7 +506,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNod
 <li class="blockList">
 <h4>roundRobinAssignment</h4>
 <pre>@NonNull
-public&nbsp;<a href="https://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="https://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" t [...]
+public&nbsp;<a href="https://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="https://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" t [...]
                                                                       <a href="https://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)
                                                                throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block">Round robin assignment: Segregate the regions into two types:
@@ -543,7 +543,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeAssignmentMaps</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.155">mergeAssignmentMaps</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util [...]
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.156">mergeAssignmentMaps</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util [...]
                                  <a href="https://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="https://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/clie [...]
 </li>
 </ul>
@@ -553,7 +553,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>generateFNForRegionsWithoutFN</h4>
-<pre>private&nbsp;<a href="https://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="https://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.h [...]
+<pre>private&nbsp;<a href="https://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="https://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.h [...]
                                                                        <a href="https://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;&nbsp;regions)
                                                                 throws <a href="https://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>
@@ -568,7 +568,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>segregateRegionsAndAssignRegionsWithFavoredNodes</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=tru [...]
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=tru [...]
                                                                                                                  <a href="https://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;onlineServers)
                                                                                                           throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block">Return a pair - one with assignments when favored nodes are present and another with regions
@@ -585,7 +585,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>addRegionToMap</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.229">addRegionToMap</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/List [...]
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.230">addRegionToMap</a>(<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/List [...]
                             <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;host)</pre>
 </li>
@@ -596,7 +596,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerFromFavoredNode</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.243">getServerFromFavoredNode</a>(<a href="https://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/ServerN [...]
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.244">getServerFromFavoredNode</a>(<a href="https://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/ServerN [...]
                                             <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;fn)</pre>
 <div class="block">Get the ServerName for the FavoredNode. Since FN's startcode is -1, we could want to get the
  ServerName with the correct start code from the list of provided servers.</div>
@@ -608,7 +608,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>assignRegionToAvailableFavoredNode</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.257">assignRegionToAvailableFavoredNode</a>(<a href="https://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="https://docs.oracle.com/javase/8/doc [...]
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.258">assignRegionToAvailableFavoredNode</a>(<a href="https://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="https://docs.oracle.com/javase/8/doc [...]
                                                 <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;primaryHost,
                                                 <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;secondaryHost,
@@ -621,7 +621,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>randomAssignment</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.297">randomAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.298">randomAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                                    <a href="https://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)
                             throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#randomAssignment-org.apache.hadoop.hbase.client.RegionInfo-java.util.List-">BaseLoadBalancer</a></code></span></div>
@@ -644,7 +644,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFavoredNodesForRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.334">updateFavoredNodesForRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.336">updateFavoredNodesForRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                                          <a href="https://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;newFavoredNodes)
                                   throws <a href="https://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>
@@ -660,7 +660,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <li class="blockList">
 <h4>retainAssignment</h4>
 <pre>@NonNull
-public&nbsp;<a href="https://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="https://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" t [...]
+public&nbsp;<a href="https://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="https://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" t [...]
                                                                   <a href="https://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)
                                                            throws <a href="../../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#retainAssignment-java.util.Map-java.util.List-">BaseLoadBalancer</a></code></span></div>
@@ -697,7 +697,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineFavoredNodes</h4>
-<pre>private&nbsp;<a href="https://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/master/balancer/FavoredStochasticBalancer.html#line.430">getOnlineFavoredNodes</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/u [...]
+<pre>private&nbsp;<a href="https://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/master/balancer/FavoredStochasticBalancer.html#line.432">getOnlineFavoredNodes</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/u [...]
                                                <a href="https://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;serversWithoutStartCodes)</pre>
 </li>
 </ul>
@@ -707,7 +707,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getFavoredNodes</h4>
-<pre>public&nbsp;<a href="https://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/master/balancer/FavoredStochasticBalancer.html#line.448">getFavoredNodes</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Region [...]
+<pre>public&nbsp;<a href="https://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/master/balancer/FavoredStochasticBalancer.html#line.450">getFavoredNodes</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/Region [...]
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPromoter.html#getFavoredNodes-org.apache.hadoop.hbase.client.RegionInfo-">getFavoredNodes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPromoter.html" title="interface in org.apache.hadoop.hbase.favored">FavoredNodesPromoter</a></code></dd>
@@ -720,7 +720,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>generateFavoredNodesForDaughter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.463">generateFavoredNodesForDaughter</a>(<a href="https://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/balancer/FavoredStochasticBalancer.html#line.465">generateFavoredNodesForDaughter</a>(<a href="https://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="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;parent,
                                             <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionA,
                                             <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionB)
@@ -747,7 +747,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getInheritedFNForDaughter</h4>
-<pre>private&nbsp;<a href="https://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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.492">getInheritedFNForDaughter</a>(<a href="../../../../../../org/apache/hadoop/hbase/favo [...]
+<pre>private&nbsp;<a href="https://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/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.494">getInheritedFNForDaughter</a>(<a href="../../../../../../org/apache/hadoop/hbase/favo [...]
                                                   <a href="https://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;parentFavoredNodes,
                                                   <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPlan.Position.html" title="enum in org.apache.hadoop.hbase.favored">FavoredNodesPlan.Position</a>&nbsp;primary,
                                                   <a href="../../../../../../org/apache/hadoop/hbase/favored/FavoredNodesPlan.Position.html" title="enum in org.apache.hadoop.hbase.favored">FavoredNodesPlan.Position</a>&nbsp;secondary)
@@ -764,7 +764,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>generateFavoredNodesForMergedRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.517">generateFavoredNodesForMergedRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;merged,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.519">generateFavoredNodesForMergedRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;merged,
                                                 <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;mergeParents)
                                          throws <a href="https://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>
@@ -781,7 +781,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>balanceTable</h4>
-<pre>protected&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.668">balanceTable</a>(<a href="../../../../../../org/apache/hadoop/hbase [...]
+<pre>protected&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.html#line.670">balanceTable</a>(<a href="../../../../../../org/apache/hadoop/hbase [...]
                                         <a href="https://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="https://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/hba [...]
 <div class="block">For all regions correctly assigned to favored nodes, we just use the stochastic balancer
  implementation. For the misplaced regions, we assign a bogus server to it and AM takes care.</div>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html
index b47664c..f892a0a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html
@@ -100,27 +100,22 @@ var activeTableTab = "activeTableTab";
 <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li>org.apache.hadoop.conf.Configured</li>
-<li>
-<ul class="inheritance">
 <li>org.apache.hadoop.hbase.master.balancer.MaintenanceLoadBalancer</li>
 </ul>
 </li>
 </ul>
-</li>
-</ul>
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>org.apache.hadoop.conf.Configurable, <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
 </dl>
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.40">MaintenanceLoadBalancer</a>
-extends org.apache.hadoop.conf.Configured
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.39">MaintenanceLoadBalancer</a>
+extends <a href="https://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/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a></pre>
 <div class="block">a balancer which is only used in maintenance mode.</div>
 </li>
@@ -275,26 +270,12 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 </tr>
 </table>
 <ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.conf.Configured">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;org.apache.hadoop.conf.Configured</h3>
-<code>getConf, setConf</code></li>
-</ul>
-<ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
 <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="htt [...]
 </ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.conf.Configurable">
-<!--   -->
-</a>
-<h3>Methods inherited from interface&nbsp;org.apache.hadoop.conf.Configurable</h3>
-<code>getConf, setConf</code></li>
-</ul>
 </li>
 </ul>
 </li>
@@ -315,7 +296,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stopped</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.42">stopped</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.41">stopped</a></pre>
 </li>
 </ul>
 </li>
@@ -332,7 +313,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MaintenanceLoadBalancer</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.40">MaintenanceLoadBalancer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.39">MaintenanceLoadBalancer</a>()</pre>
 </li>
 </ul>
 </li>
@@ -349,7 +330,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.45">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.44">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
 <div class="block">Stop this service.
  Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -367,7 +348,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.50">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.49">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>
@@ -382,7 +363,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterMetrics</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.55">setClusterMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;st)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.54">setClusterMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;st)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#setClusterMetrics-org.apache.hadoop.hbase.ClusterMetrics-">LoadBalancer</a></code></span></div>
 <div class="block">Set the current cluster status. This allows a LoadBalancer to map host name to a server</div>
 <dl>
@@ -397,7 +378,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterInfoProvider</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.59">setClusterInfoProvider</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a>&nbsp;provider)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.58">setClusterInfoProvider</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a>&nbsp;provider)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#setClusterInfoProvider-org.apache.hadoop.hbase.master.balancer.ClusterInfoProvider-">LoadBalancer</a></code></span></div>
 <div class="block">Set the cluster info provider. Usually it is just a wrapper of master.</div>
 <dl>
@@ -412,7 +393,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceCluster</h4>
-<pre>public&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.63">balanceCluster</a>(<a href="https://docs.oracle.com/javase/8/docs/api/jav [...]
+<pre>public&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.62">balanceCluster</a>(<a href="https://docs.oracle.com/javase/8/docs/api/jav [...]
                                 throws <a href="https://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/master/LoadBalancer.html#balanceCluster-java.util.Map-">LoadBalancer</a></code></span></div>
 <div class="block">Perform the major balance operation for cluster.</div>
@@ -435,7 +416,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>assign</h4>
-<pre>private&nbsp;<a href="https://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="https://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.h [...]
+<pre>private&nbsp;<a href="https://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="https://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.h [...]
                                                 <a href="https://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>
 </li>
 </ul>
@@ -445,7 +426,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>roundRobinAssignment</h4>
-<pre>public&nbsp;<a href="https://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="https://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.ht [...]
+<pre>public&nbsp;<a href="https://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="https://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.ht [...]
                                                              <a href="https://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)
                                                       throws <a href="https://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/master/LoadBalancer.html#roundRobinAssignment-java.util.List-java.util.List-">LoadBalancer</a></code></span></div>
@@ -466,7 +447,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>retainAssignment</h4>
-<pre>public&nbsp;<a href="https://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="https://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.ht [...]
+<pre>public&nbsp;<a href="https://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="https://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.ht [...]
                                                          <a href="https://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)
                                                   throws <a href="https://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/master/LoadBalancer.html#retainAssignment-java.util.Map-java.util.List-">LoadBalancer</a></code></span></div>
@@ -487,7 +468,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>randomAssignment</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.95">randomAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.94">randomAssignment</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                                    <a href="https://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)
                             throws <a href="https://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/master/LoadBalancer.html#randomAssignment-org.apache.hadoop.hbase.client.RegionInfo-java.util.List-">LoadBalancer</a></code></span></div>
@@ -508,7 +489,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>initialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.103">initialize</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.102">initialize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#initialize--">LoadBalancer</a></code></span></div>
 <div class="block">Initialize the load balancer. Must be called after setters.</div>
 <dl>
@@ -523,7 +504,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOnline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.107">regionOnline</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.106">regionOnline</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                          <a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOnline-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">LoadBalancer</a></code></span></div>
 <div class="block">Marks the region as online at balancer.</div>
@@ -539,7 +520,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOffline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.111">regionOffline</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.110">regionOffline</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOffline-org.apache.hadoop.hbase.client.RegionInfo-">LoadBalancer</a></code></span></div>
 <div class="block">Marks the region as offline at balancer.</div>
 <dl>
@@ -554,7 +535,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.115">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.114">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">LoadBalancer</a></code></span></div>
 <div class="block">Notification that config has changed</div>
 <dl>
@@ -571,7 +552,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockList">
 <li class="blockList">
 <h4>postMasterStartupInitialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.119">postMasterStartupInitialize</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.118">postMasterStartupInitialize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#postMasterStartupInitialize--">LoadBalancer</a></code></span></div>
 <div class="block">If balancer needs to do initialization after Master has started up, lets do that here.</div>
 <dl>
@@ -586,7 +567,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalance
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updateBalancerStatus</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.123">updateBalancerStatus</a>(boolean&nbsp;status)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html#line.122">updateBalancerStatus</a>(boolean&nbsp;status)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#updateBalancerStatus-boolean-">updateBalancerStatus</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a></code></dd>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html
index fd7792b..02bfe8c 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -187,31 +187,37 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Cl
 </td>
 </tr>
 <tr id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Get the configuration.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#getNumberOfTables--">getNumberOfTables</a></span>()</code>
 <div class="block">Returns the number of tables on this cluster.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="https://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"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#getOnlineServersListWithPredicator-java.util.List-java.util.function.Predicate-">getOnlineServersListWithPredicator</a></span>(<a href="https://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" tit [...]
                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&gt;&nbsp;filter)</code>
 <div class="block">Returns a copy of the internal list of online servers matched by the given <code>filter</code>.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="https://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="https://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/Reg [...]
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#getSnapShotOfAssignment-java.util.Collection-">getSnapShotOfAssignment</a></span>(<a href="https://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/client/RegionInfo.html" title="interface in org.apach [...]
 <div class="block">Get a snapshot of the current assignment status.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#getTableDescriptor-org.apache.hadoop.hbase.TableName-">getTableDescriptor</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">Get the table descriptor for the given table.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#hasRegionReplica-java.util.Collection-">hasRegionReplica</a></span>(<a href="https://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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase [...]
 <div class="block">Check whether we have region replicas enabled for the tables of the given regions.</div>
@@ -273,13 +279,28 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Cl
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.53">getConfiguration</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getConfiguration--">ClusterInfoProvider</a></code></span></div>
+<div class="block">Get the configuration.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getConfiguration--">getConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="getAssignedRegions--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getAssignedRegions</h4>
-<pre>public&nbsp;<a href="https://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;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.53">getAssignedRegions</a>()</pre>
+<pre>public&nbsp;<a href="https://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;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.58">getAssignedRegions</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getAssignedRegions--">ClusterInfoProvider</a></code></span></div>
 <div class="block">Get all the regions of this cluster.
  <p/>
@@ -296,7 +317,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Cl
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDescriptor</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.59">getTableDescriptor</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/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.64">getTableDescriptor</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                                    throws <a href="https://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/master/balancer/ClusterInfoProvider.html#getTableDescriptor-org.apache.hadoop.hbase.TableName-">ClusterInfoProvider</a></code></span></div>
 <div class="block">Get the table descriptor for the given table.</div>
@@ -314,7 +335,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Cl
 <ul class="blockList">
 <li class="blockList">
 <h4>computeHDFSBlocksDistribution</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.65">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.70">computeHDFSBlocksDistribution</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                             <a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                                                             <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)
                                                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -336,7 +357,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Cl
 <ul class="blockList">
 <li class="blockList">
 <h4>hasRegionReplica</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.71">hasRegionReplica</a>(<a href="https://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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.76">hasRegionReplica</a>(<a href="https://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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions)
                          throws <a href="https://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/master/balancer/ClusterInfoProvider.html#hasRegionReplica-java.util.Collection-">ClusterInfoProvider</a></code></span></div>
 <div class="block">Check whether we have region replicas enabled for the tables of the given regions.</div>
@@ -354,7 +375,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Cl
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineServersListWithPredicator</h4>
-<pre>public&nbsp;<a href="https://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/master/balancer/MasterClusterInfoProvider.html#line.86">getOnlineServersListWithPredicator</a>(<a href="https://docs.oracle.com/javase/8/docs [...]
+<pre>public&nbsp;<a href="https://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/master/balancer/MasterClusterInfoProvider.html#line.91">getOnlineServersListWithPredicator</a>(<a href="https://docs.oracle.com/javase/8/docs [...]
                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerMetrics.html" title="interface in org.apache.hadoop.hbase">ServerMetrics</a>&gt;&nbsp;filter)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getOnlineServersListWithPredicator-java.util.List-java.util.function.Predicate-">ClusterInfoProvider</a></code></span></div>
 <div class="block">Returns a copy of the internal list of online servers matched by the given <code>filter</code>.</div>
@@ -370,7 +391,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Cl
 <ul class="blockList">
 <li class="blockList">
 <h4>getSnapShotOfAssignment</h4>
-<pre>public&nbsp;<a href="https://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="https://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.ht [...]
+<pre>public&nbsp;<a href="https://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="https://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.ht [...]
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html#getSnapShotOfAssignment-java.util.Collection-">ClusterInfoProvider</a></code></span></div>
 <div class="block">Get a snapshot of the current assignment status.</div>
 <dl>
@@ -385,7 +406,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/Cl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getNumberOfTables</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.100">getNumberOfTables</a>()
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html#line.105">getNumberOfTables</a>()
                       throws <a href="https://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/master/balancer/ClusterInfoProvider.html#getNumberOfTables--">ClusterInfoProvider</a></code></span></div>
 <div class="block">Returns the number of tables on this cluster.</div>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.html
index 163dba9..909cf83 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>org.apache.hadoop.conf.Configurable, <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
 </dl>
 <hr>
 <br>
@@ -196,7 +196,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseL
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_DECISION_BUFFER_ENABLED">BALANCER_DECISION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_REJECTION_BUFFER_ENABLED">BALANCER_REJECTION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#clusterStatus">clusterStatus</a>, <a href="../../../../../../org/apache/h [...]
+<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_DECISION_BUFFER_ENABLED">BALANCER_DECISION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_REJECTION_BUFFER_ENABLED">BALANCER_REJECTION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#clusterStatus">clusterStatus</a>, <a href="../../../../../../org/apache/h [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.master.LoadBalancer">
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html
index ebbd612..180af49 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>org.apache.hadoop.conf.Configurable, <a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
+<dd><a href="../../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
 </dl>
 <dl>
 <dt>Direct Known Subclasses:</dt>
@@ -319,7 +319,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseL
 <!--   -->
 </a>
 <h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_DECISION_BUFFER_ENABLED">BALANCER_DECISION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_REJECTION_BUFFER_ENABLED">BALANCER_REJECTION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#clusterStatus">clusterStatus</a>, <a href="../../../../../../org/apache/h [...]
+<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_DECISION_BUFFER_ENABLED">BALANCER_DECISION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#BALANCER_REJECTION_BUFFER_ENABLED">BALANCER_REJECTION_BUFFER_ENABLED</a>, <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#clusterStatus">clusterStatus</a>, <a href="../../../../../../org/apache/h [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.master.LoadBalancer">
@@ -468,7 +468,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseL
 </td>
 </tr>
 <tr id="i19" class="rowColor">
-<td class="colFirst"><code>void</code></td>
+<td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html#setConf-org.apache.hadoop.conf.Configuration-">setConf</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
 <tr id="i20" class="altColor">
@@ -888,10 +888,8 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseL
 <ul class="blockList">
 <li class="blockList">
 <h4>setConf</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html#line.173">setConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.html#line.173">setConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>setConf</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.conf.Configurable</code></dd>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html#setConf-org.apache.hadoop.conf.Configuration-">setConf</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">BaseLoadBalancer</a></code></dd>
 </dl>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
index 5ae9334..f3a4b54 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
@@ -126,7 +126,6 @@
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterLoadState.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">ClusterLoadState</span></a></li>
 <li type="circle">org.apache.hadoop.conf.Configured (implements org.apache.hadoop.conf.Configurable)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">MaintenanceLoadBalancer</span></a> (implements org.apache.hadoop.hbase.master.<a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/RegionHDFSBlockLocationFinder.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">RegionHDFSBlockLocationFinder</span></a></li>
 </ul>
 </li>
@@ -164,6 +163,7 @@
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/LoadBalancerFactory.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">LoadBalancerFactory</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">MaintenanceLoadBalancer</span></a> (implements org.apache.hadoop.hbase.master.<a href="../../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MasterClusterInfoProvider.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">MasterClusterInfoProvider</span></a> (implements org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterI [...]
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/MetricsBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">MetricsBalancer</span></a>
 <ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.SplitParentFirstComparator.html b/devapidocs/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.SplitParentFirstComparator.html
index 9fcde38..0f756ef 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.SplitParentFirstComparator.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.SplitParentFirstComparator.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.271">CatalogJanitor.SplitParentFirstComparator</a>
+<pre>static class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.291">CatalogJanitor.SplitParentFirstComparator</a>
 extends <a href="https://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="https://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/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;</pre>
 <div class="block">Compare HRegionInfos in a way that has split parents sort BEFORE their daughters.</div>
@@ -215,7 +215,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>rowEndKeyComparator</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;byte[]&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.SplitParentFirstComparator.html#line.272">rowEndKeyComparator</a></pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;byte[]&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.SplitParentFirstComparator.html#line.292">rowEndKeyComparator</a></pre>
 </li>
 </ul>
 </li>
@@ -232,7 +232,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SplitParentFirstComparator</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.SplitParentFirstComparator.html#line.271">SplitParentFirstComparator</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.SplitParentFirstComparator.html#line.291">SplitParentFirstComparator</a>()</pre>
 </li>
 </ul>
 </li>
@@ -249,7 +249,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>compare</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.SplitParentFirstComparator.html#line.275">compare</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;left,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.SplitParentFirstComparator.html#line.295">compare</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;left,
                    <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;right)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html b/devapidocs/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html
index 4cff0ea..c92279d 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html
@@ -170,20 +170,24 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#alreadyRunning">alreadyRunning</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#DEFAULT_HBASE_CATALOGJANITOR_INTERVAL">DEFAULT_HBASE_CATALOGJANITOR_INTERVAL</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="https://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></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#enabled">enabled</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/master/janitor/Report.html" title="class in org.apache.hadoop.hbase.master.janitor">Report</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#lastReport">lastReport</a></span></code>
 <div class="block">Saved report from last hbase:meta scan to completion.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#services">services</a></span></code>&nbsp;</td>
 </tr>
@@ -343,13 +347,26 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <!--   -->
 </a>
 <h3>Field Detail</h3>
+<a name="DEFAULT_HBASE_CATALOGJANITOR_INTERVAL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_HBASE_CATALOGJANITOR_INTERVAL</h4>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.77">DEFAULT_HBASE_CATALOGJANITOR_INTERVAL</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.janitor.CatalogJanitor.DEFAULT_HBASE_CATALOGJANITOR_INTERVAL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 <a name="LOG">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.77">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.79">LOG</a></pre>
 </li>
 </ul>
 <a name="alreadyRunning">
@@ -358,7 +375,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>alreadyRunning</h4>
-<pre>private final&nbsp;<a href="https://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/master/janitor/CatalogJanitor.html#line.79">alreadyRunning</a></pre>
+<pre>private final&nbsp;<a href="https://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/master/janitor/CatalogJanitor.html#line.81">alreadyRunning</a></pre>
 </li>
 </ul>
 <a name="enabled">
@@ -367,7 +384,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>enabled</h4>
-<pre>private final&nbsp;<a href="https://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/master/janitor/CatalogJanitor.html#line.80">enabled</a></pre>
+<pre>private final&nbsp;<a href="https://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/master/janitor/CatalogJanitor.html#line.82">enabled</a></pre>
 </li>
 </ul>
 <a name="services">
@@ -376,7 +393,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>services</h4>
-<pre>private final&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/master/janitor/CatalogJanitor.html#line.81">services</a></pre>
+<pre>private final&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/master/janitor/CatalogJanitor.html#line.83">services</a></pre>
 </li>
 </ul>
 <a name="lastReport">
@@ -385,7 +402,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lastReport</h4>
-<pre>private volatile&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/janitor/Report.html" title="class in org.apache.hadoop.hbase.master.janitor">Report</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.87">lastReport</a></pre>
+<pre>private volatile&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/janitor/Report.html" title="class in org.apache.hadoop.hbase.master.janitor">Report</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.89">lastReport</a></pre>
 <div class="block">Saved report from last hbase:meta scan to completion. May be stale if having trouble completing
  scan. Check its date.</div>
 </li>
@@ -404,7 +421,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CatalogJanitor</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.89">CatalogJanitor</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;services)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.91">CatalogJanitor</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;services)</pre>
 </li>
 </ul>
 </li>
@@ -421,7 +438,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>initialChore</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.96">initialChore</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.99">initialChore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html#initialChore--">ScheduledChore</a></code></span></div>
 <div class="block">Override to run a task before we start looping.</div>
 <dl>
@@ -438,7 +455,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>setEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.108">setEnabled</a>(boolean&nbsp;enabled)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.111">setEnabled</a>(boolean&nbsp;enabled)</pre>
 </li>
 </ul>
 <a name="getEnabled--">
@@ -447,7 +464,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>getEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.122">getEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.125">getEnabled</a>()</pre>
 </li>
 </ul>
 <a name="chore--">
@@ -456,7 +473,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.127">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.130">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>
@@ -471,7 +488,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>isMetaLoaded</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.144">isMetaLoaded</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;am)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.147">isMetaLoaded</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;am)</pre>
 </li>
 </ul>
 <a name="isRIT-org.apache.hadoop.hbase.master.assignment.AssignmentManager-">
@@ -480,7 +497,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>isRIT</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.148">isRIT</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;am)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.151">isRIT</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;am)</pre>
 </li>
 </ul>
 <a name="scan--">
@@ -489,7 +506,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>scan</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.157">scan</a>()
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.160">scan</a>()
          throws <a href="https://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">Run janitorial scan of catalog <code>hbase:meta</code> table looking for garbage to collect.</div>
 <dl>
@@ -507,7 +524,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>scanForReport</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/janitor/Report.html" title="class in org.apache.hadoop.hbase.master.janitor">Report</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.216">scanForReport</a>()
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/janitor/Report.html" title="class in org.apache.hadoop.hbase.master.janitor">Report</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.232">scanForReport</a>()
                         throws <a href="https://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">Scan hbase:meta.</div>
 <dl>
@@ -524,7 +541,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastReport</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/janitor/Report.html" title="class in org.apache.hadoop.hbase.master.janitor">Report</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.226">getLastReport</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/janitor/Report.html" title="class in org.apache.hadoop.hbase.master.janitor">Report</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.242">getLastReport</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Returns last published Report that comes of last successful scan of hbase:meta.</dd>
@@ -537,7 +554,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanMergeRegion</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.236">cleanMergeRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;mergedRegion,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.252">cleanMergeRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;mergedRegion,
                                  <a href="https://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;&nbsp;parents)
                           throws <a href="https://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">If merged region no longer holds reference to the merge regions, archive merge region on hdfs
@@ -557,7 +574,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanParent</h4>
-<pre>static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.301">cleanParent</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;services,
+<pre>static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.321">cleanParent</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;services,
                            <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;parent,
                            <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;rowContent)
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -573,7 +590,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanParent</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.335">cleanParent</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;parent,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.375">cleanParent</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;parent,
                             <a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;rowContent)
                      throws <a href="https://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">If daughters no longer hold reference to the parents, delete the parent.</div>
@@ -594,7 +611,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>hasNoReferences</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.345">hasNoReferences</a>(<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang [...]
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.385">hasNoReferences</a>(<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang [...]
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>p</code> - A pair where the first boolean says whether or not the daughter region directory
@@ -611,7 +628,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>checkDaughterInFs</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apach [...]
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apach [...]
                                                        <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;parent,
                                                        <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;daughter)
                                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -635,7 +652,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>getDescriptor</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.401">getDescriptor</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.441">getDescriptor</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                                throws <a href="https://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>
@@ -649,7 +666,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>updateAssignmentManagerMetrics</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.405">updateAssignmentManagerMetrics</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.445">updateAssignmentManagerMetrics</a>()</pre>
 </li>
 </ul>
 <a name="checkLog4jProperties--">
@@ -658,7 +675,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockList">
 <li class="blockList">
 <h4>checkLog4jProperties</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.416">checkLog4jProperties</a>()</pre>
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.456">checkLog4jProperties</a>()</pre>
 </li>
 </ul>
 <a name="main-java.lang.String:A-">
@@ -667,7 +684,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/ScheduledChore.html"
 <ul class="blockListLast">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.434">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/janitor/CatalogJanitor.html#line.474">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
                  throws <a href="https://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">For testing against a cluster. Doesn't have a MasterServices context so does not report on good
  vs bad servers.</div>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index f656b31..d022170 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -279,14 +279,9 @@
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchemaService.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">ClusterSchemaService</span></a> (also extends org.apache.hbase.thirdparty.com.google.common.util.concurrent.Service)</li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.conf.Configurable
-<ul>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">LoadBalancer</span></a> (also extends org.apache.hadoop.hbase.conf.<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop [...]
-</ul>
-</li>
 <li type="circle">org.apache.hadoop.hbase.conf.<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf"><span class="typeNameLink">ConfigurationObserver</span></a>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">LoadBalancer</span></a> (also extends org.apache.hadoop.conf.Configurable, org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">LoadBalancer</span></a> (also extends org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>)</li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">HMaster.TableDescriptorGetter</span></a></li>
@@ -303,7 +298,7 @@
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">SnapshotSentinel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase"><span class="typeNameLink">Stoppable</span></a>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">LoadBalancer</span></a> (also extends org.apache.hadoop.conf.Configurable, org.apache.hadoop.hbase.conf.<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">LoadBalancer</span></a> (also extends org.apache.hadoop.hbase.conf.<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase"><span class="typeNameLink">Server</span></a> (also extends org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterServices</span></a></li>
@@ -323,13 +318,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <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/MetaRegionLocationCache.ZNodeOpType.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetaRegionLocationCache.ZNodeOpType</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/ServerManager.ServerLiveState.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">ServerManager.ServerLiveState</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/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetaRegionLocationCache.ZNodeOpType.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetaRegionLocationCache.ZNodeOpType</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/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</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/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>
 </ul>
 </li>
 </ul>
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 007b75d..88ea978 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -222,10 +222,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</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>
 <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/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</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>
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index 13cf7cb..0e76975 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -424,19 +424,19 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/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/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</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/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/ClientMetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClientMetaTableAccessor.QueryType</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/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/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/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/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/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/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</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/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/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</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/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index a4512da..e85c9b3 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -217,9 +217,9 @@
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <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/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/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/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/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/package-tree.html
index 4ef4954..b0ced2c 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/store/wal/package-tree.html
@@ -133,8 +133,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.store.wal.<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureStoreTracker.DeleteState.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal"><span class="typeNameLink">ProcedureStoreTracker.DeleteState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.store.wal.<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.PushType.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal"><span class="typeNameLink">WALProcedureStore.PushType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.store.wal.<a href="../../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/ProcedureStoreTracker.DeleteState.html" title="enum in org.apache.hadoop.hbase.procedure2.store.wal"><span class="typeNameLink">ProcedureStoreTracker.DeleteState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index f101003..2fae90e 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -240,12 +240,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</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/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/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/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/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/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/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 8524210..58990f6 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -725,20 +725,20 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/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/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/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/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/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/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/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/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/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/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/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</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/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/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/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</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/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/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/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/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
 </ul>
 </li>
 </ul>
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 bb0ce63..affd9e0 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,9 +130,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<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/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</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/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 </ul>
 </li>
 </ul>
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 43510bc..ee29895 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -247,10 +247,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.RollRequestReason.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALActionsListener.RollRequestReason</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>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
index 2c06373..bfd5e77 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
@@ -175,8 +175,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index b10b7db..ee16d0e 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -220,8 +220,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
index a8ae9f6..a5b08e8 100644
--- a/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
+++ b/devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd>org.apache.hadoop.conf.Configurable, <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
+<dd><a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>, <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
 </dl>
 <hr>
 <br>
@@ -151,36 +151,32 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.h
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#clusterStatus">clusterStatus</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private org.apache.hadoop.conf.Configuration</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#config">config</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://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/rsgroup/RSGroupBasedLoadBalancer.html#FALLBACK_GROUP_ENABLE_KEY">FALLBACK_GROUP_ENABLE_KEY</a></span></code>
 <div class="block">Set this key to <code>true</code> to allow region fallback.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#fallbackEnabled">fallbackEnabled</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#favoredNodesManager">favoredNodesManager</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#internalBalancer">internalBalancer</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static org.slf4j.Logger</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#masterServices">masterServices</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#rsGroupInfoManager">rsGroupInfoManager</a></span></code>&nbsp;</td>
 </tr>
@@ -253,116 +249,108 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.h
                         <a href="https://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>
 </tr>
 <tr id="i5" class="rowColor">
-<td class="colFirst"><code>org.apache.hadoop.conf.Configuration</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getConf--">getConf</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i6" class="altColor">
 <td class="colFirst"><code>private <a href="https://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"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getFallBackCandidates-java.util.List-">getFallBackCandidates</a></span>(<a href="https://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) [...]
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getFavoredNodesManager--">getFavoredNodesManager</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#getInternalBalancer--">getInternalBalancer</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" 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/RSGroupBasedLoadBalancer.html#initialize--">initialize</a></span>()</code>
 <div class="block">Initialize the load balancer.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#isFallbackEnabled--">isFallbackEnabled</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#isOnline--">isOnline</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#isStopped--">isStopped</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<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/RSGroupBasedLoadBalancer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
 <div class="block">Notification that config has changed</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<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/RSGroupBasedLoadBalancer.html#postMasterStartupInitialize--">postMasterStartupInitialize</a></span>()</code>
 <div class="block">If balancer needs to do initialization after Master has started up, lets do that here.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i14" class="altColor">
 <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"><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="https://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>
 <div class="block">Get a random region server from the list</div>
 </td>
 </tr>
-<tr id="i16" 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/RSGroupBasedLoadBalancer.html#regionOffline-org.apache.hadoop.hbase.client.RegionInfo-">regionOffline</a></span>(<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">Marks the region as offline at balancer.</div>
 </td>
 </tr>
-<tr id="i17" 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/RSGroupBasedLoadBalancer.html#regionOnline-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">regionOnline</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
             <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
 <div class="block">Marks the region as online at balancer.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code><a href="https://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="https://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/RegionInf [...]
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#retainAssignment-java.util.Map-java.util.List-">retainAssignment</a></span>(<a href="https://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 href="https://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>
 <div class="block">Assign regions to the previously hosting region server</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code><a href="https://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="https://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/RegionInf [...]
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#roundRobinAssignment-java.util.List-java.util.List-">roundRobinAssignment</a></span>(<a href="https://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">R [...]
                     <a href="https://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>
 <div class="block">Perform a Round Robin assignment of regions.</div>
 </td>
 </tr>
-<tr id="i20" 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/RSGroupBasedLoadBalancer.html#setClusterInfoProvider-org.apache.hadoop.hbase.master.balancer.ClusterInfoProvider-">setClusterInfoProvider</a></span>(<a href="../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a>&nbsp;provider)</code>
 <div class="block">Set the cluster info provider.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<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/RSGroupBasedLoadBalancer.html#setClusterMetrics-org.apache.hadoop.hbase.ClusterMetrics-">setClusterMetrics</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;sm)</code>
 <div class="block">Set the current cluster status.</div>
 </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/RSGroupBasedLoadBalancer.html#setConf-org.apache.hadoop.conf.Configuration-">setConf</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
-</tr>
-<tr id="i23" class="rowColor">
+<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/RSGroupBasedLoadBalancer.html#setMasterServices-org.apache.hadoop.hbase.master.MasterServices-">setMasterServices</a></span>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;masterServices)</code>&nbsp;</td>
 </tr>
-<tr id="i24" class="altColor">
+<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/RSGroupBasedLoadBalancer.html#setRsGroupInfoManager-org.apache.hadoop.hbase.rsgroup.RSGroupInfoManager-">setRsGroupInfoManager</a></span>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;rsGroupInfoManager)</code>&nbsp;</td>
 </tr>
-<tr id="i25" class="rowColor">
+<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/RSGroupBasedLoadBalancer.html#stop-java.lang.String-">stop</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</code>
 <div class="block">Stop this service.</div>
 </td>
 </tr>
-<tr id="i26" class="altColor">
+<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/RSGroupBasedLoadBalancer.html#updateBalancerStatus-boolean-">updateBalancerStatus</a></span>(boolean&nbsp;status)</code>&nbsp;</td>
 </tr>
@@ -397,22 +385,13 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.h
 <pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.74">LOG</a></pre>
 </li>
 </ul>
-<a name="config">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>config</h4>
-<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.76">config</a></pre>
-</li>
-</ul>
 <a name="clusterStatus">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterStatus</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.77">clusterStatus</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.76">clusterStatus</a></pre>
 </li>
 </ul>
 <a name="masterServices">
@@ -421,7 +400,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.h
 <ul class="blockList">
 <li class="blockList">
 <h4>masterServices</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/RSGroupBasedLoadBalancer.html#line.78">masterServices</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/RSGroupBasedLoadBalancer.html#line.77">masterServices</a></pre>
 </li>
 </ul>
 <a name="favoredNodesManager">
@@ -430,7 +409,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.h
 <ul class="blockList">
 <li class="blockList">
 <h4>favoredNodesManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.79">favoredNodesManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.78">favoredNodesManager</a></pre>
 </li>
 </ul>
 <a name="rsGroupInfoManager">
@@ -439,7 +418,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.h
 <ul class="blockList">
 <li class="blockList">
 <h4>rsGroupInfoManager</h4>
-<pre>private volatile&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/RSGroupBasedLoadBalancer.html#line.80">rsGroupInfoManager</a></pre>
+<pre>private volatile&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/RSGroupBasedLoadBalancer.html#line.79">rsGroupInfoManager</a></pre>
 </li>
 </ul>
 <a name="internalBalancer">
@@ -448,7 +427,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.h
 <ul class="blockList">
 <li class="blockList">
 <h4>internalBalancer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.81">internalBalancer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.80">internalBalancer</a></pre>
 </li>
 </ul>
 <a name="FALLBACK_GROUP_ENABLE_KEY">
@@ -457,7 +436,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.h
 <ul class="blockList">
 <li class="blockList">
 <h4>FALLBACK_GROUP_ENABLE_KEY</h4>
-<pre>public static final&nbsp;<a href="https://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/RSGroupBasedLoadBalancer.html#line.90">FALLBACK_GROUP_ENABLE_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://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/RSGroupBasedLoadBalancer.html#line.89">FALLBACK_GROUP_ENABLE_KEY</a></pre>
 <div class="block">Set this key to <code>true</code> to allow region fallback.
  Fallback to the default rsgroup first, then fallback to any group if no online servers in
  default rsgroup.
@@ -475,7 +454,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>fallbackEnabled</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.92">fallbackEnabled</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.91">fallbackEnabled</a></pre>
 </li>
 </ul>
 </li>
@@ -493,7 +472,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.h
 <li class="blockList">
 <h4>RSGroupBasedLoadBalancer</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.98">RSGroupBasedLoadBalancer</a>()</pre>
+public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.97">RSGroupBasedLoadBalancer</a>()</pre>
 <div class="block">Used by reflection in <a href="../../../../../org/apache/hadoop/hbase/master/balancer/LoadBalancerFactory.html" title="class in org.apache.hadoop.hbase.master.balancer"><code>LoadBalancerFactory</code></a>.</div>
 </li>
 </ul>
@@ -505,39 +484,13 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getConf--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getConf</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.101">getConf</a>()</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>getConf</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.conf.Configurable</code></dd>
-</dl>
-</li>
-</ul>
-<a name="setConf-org.apache.hadoop.conf.Configuration-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setConf</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.106">setConf</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>setConf</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.conf.Configurable</code></dd>
-</dl>
-</li>
-</ul>
 <a name="setClusterMetrics-org.apache.hadoop.hbase.ClusterMetrics-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterMetrics</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.114">setClusterMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;sm)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.100">setClusterMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;sm)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#setClusterMetrics-org.apache.hadoop.hbase.ClusterMetrics-">LoadBalancer</a></code></span></div>
 <div class="block">Set the current cluster status. This allows a LoadBalancer to map host name to a server</div>
 <dl>
@@ -552,7 +505,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>setMasterServices</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.121">setMasterServices</a>(<a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;masterServices)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.107">setMasterServices</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="balanceCluster-java.util.Map-">
@@ -561,7 +514,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>balanceCluster</h4>
-<pre>public&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.129">balanceCluster</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.h [...]
+<pre>public&nbsp;<a href="https://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/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.115">balanceCluster</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.h [...]
                                 throws <a href="https://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">Balance by RSGroup.</div>
 <dl>
@@ -584,7 +537,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <li class="blockList">
 <h4>roundRobinAssignment</h4>
 <pre>@NonNull
-public&nbsp;<a href="https://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="https://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=" [...]
+public&nbsp;<a href="https://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="https://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=" [...]
                                                                       <a href="https://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)
                                                                throws <a href="https://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/master/LoadBalancer.html#roundRobinAssignment-java.util.List-java.util.List-">LoadBalancer</a></code></span></div>
@@ -606,7 +559,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <li class="blockList">
 <h4>retainAssignment</h4>
 <pre>@NonNull
-public&nbsp;<a href="https://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="https://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=" [...]
+public&nbsp;<a href="https://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="https://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=" [...]
                                                                   <a href="https://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)
                                                            throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#retainAssignment-java.util.Map-java.util.List-">LoadBalancer</a></code></span></div>
@@ -627,7 +580,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>randomAssignment</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.217">randomAssignment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.203">randomAssignment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
                                    <a href="https://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)
                             throws <a href="https://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/master/LoadBalancer.html#randomAssignment-org.apache.hadoop.hbase.client.RegionInfo-java.util.List-">LoadBalancer</a></code></span></div>
@@ -648,7 +601,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>generateGroupAssignments</h4>
-<pre>private&nbsp;<a href="https://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;<a href="https://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 [...]
+<pre>private&nbsp;<a href="https://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;<a href="https://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 [...]
                                                                                <a href="https://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)
                                                                         throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <dl>
@@ -663,7 +616,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>filterOfflineServers</h4>
-<pre>private&nbsp;<a href="https://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/RSGroupBasedLoadBalancer.html#line.266">filterOfflineServers</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" [...]
+<pre>private&nbsp;<a href="https://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/RSGroupBasedLoadBalancer.html#line.252">filterOfflineServers</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" [...]
                                               <a href="https://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;onlineServers)</pre>
 </li>
 </ul>
@@ -673,7 +626,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>filterServers</h4>
-<pre>private&nbsp;<a href="https://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/RSGroupBasedLoadBalancer.html#line.288">filterServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-externa [...]
+<pre>private&nbsp;<a href="https://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/RSGroupBasedLoadBalancer.html#line.274">filterServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-externa [...]
                                        <a href="https://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;onlineServers)</pre>
 <div class="block">Filter servers based on the online servers.
  <p/>
@@ -697,7 +650,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>correctAssignments</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title= [...]
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://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="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title= [...]
                                                                                            throws <a href="https://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>
@@ -711,7 +664,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>initialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.338">initialize</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.324">initialize</a>()
                 throws <a href="https://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/master/LoadBalancer.html#initialize--">LoadBalancer</a></code></span></div>
 <div class="block">Initialize the load balancer. Must be called after setters.</div>
@@ -729,7 +682,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>isOnline</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.389">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.375">isOnline</a>()</pre>
 </li>
 </ul>
 <a name="isFallbackEnabled--">
@@ -738,7 +691,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>isFallbackEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.397">isFallbackEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.383">isFallbackEnabled</a>()</pre>
 </li>
 </ul>
 <a name="regionOnline-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">
@@ -747,7 +700,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOnline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.402">regionOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.388">regionOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                          <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOnline-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">LoadBalancer</a></code></span></div>
 <div class="block">Marks the region as online at balancer.</div>
@@ -763,7 +716,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOffline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.406">regionOffline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.392">regionOffline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOffline-org.apache.hadoop.hbase.client.RegionInfo-">LoadBalancer</a></code></span></div>
 <div class="block">Marks the region as offline at balancer.</div>
 <dl>
@@ -778,7 +731,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.410">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.396">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">LoadBalancer</a></code></span></div>
 <div class="block">Notification that config has changed</div>
 <dl>
@@ -795,7 +748,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.422">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.407">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
 <div class="block">Stop this service.
  Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -813,7 +766,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.426">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.411">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>
@@ -828,7 +781,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>setRsGroupInfoManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.430">setRsGroupInfoManager</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;rsGroupInfoManager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.415">setRsGroupInfoManager</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;rsGroupInfoManager)</pre>
 </li>
 </ul>
 <a name="getInternalBalancer--">
@@ -837,7 +790,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getInternalBalancer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.434">getInternalBalancer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.419">getInternalBalancer</a>()</pre>
 </li>
 </ul>
 <a name="getFavoredNodesManager--">
@@ -846,7 +799,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getFavoredNodesManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.438">getFavoredNodesManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/favored/FavoredNodesManager.html" title="class in org.apache.hadoop.hbase.favored">FavoredNodesManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.423">getFavoredNodesManager</a>()</pre>
 </li>
 </ul>
 <a name="postMasterStartupInitialize--">
@@ -855,7 +808,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>postMasterStartupInitialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.443">postMasterStartupInitialize</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.428">postMasterStartupInitialize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#postMasterStartupInitialize--">LoadBalancer</a></code></span></div>
 <div class="block">If balancer needs to do initialization after Master has started up, lets do that here.</div>
 <dl>
@@ -870,7 +823,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>updateBalancerStatus</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.447">updateBalancerStatus</a>(boolean&nbsp;status)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.432">updateBalancerStatus</a>(boolean&nbsp;status)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#updateBalancerStatus-boolean-">updateBalancerStatus</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a></code></dd>
@@ -883,7 +836,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getFallBackCandidates</h4>
-<pre>private&nbsp;<a href="https://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/RSGroupBasedLoadBalancer.html#line.451">getFallBackCandidates</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?i [...]
+<pre>private&nbsp;<a href="https://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/RSGroupBasedLoadBalancer.html#line.436">getFallBackCandidates</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?i [...]
 </li>
 </ul>
 <a name="setClusterInfoProvider-org.apache.hadoop.hbase.master.balancer.ClusterInfoProvider-">
@@ -892,7 +845,7 @@ public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>setClusterInfoProvider</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.463">setClusterInfoProvider</a>(<a href="../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a>&nbsp;provider)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.448">setClusterInfoProvider</a>(<a href="../../../../../org/apache/hadoop/hbase/master/balancer/ClusterInfoProvider.html" title="interface in org.apache.hadoop.hbase.master.balancer">ClusterInfoProvider</a>&nbsp;provider)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#setClusterInfoProvider-org.apache.hadoop.hbase.master.balancer.ClusterInfoProvider-">LoadBalancer</a></code></span></div>
 <div class="block">Set the cluster info provider. Usually it is just a wrapper of master.</div>
 <dl>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index 57e7697..a85c46d 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -162,10 +162,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.HDFSAclOperation.OperationType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.OperationType</span></a></li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index a64c5b0..a7498b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -190,8 +190,8 @@
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <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/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/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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index f459efc..b27959b 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -535,14 +535,14 @@
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <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/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/HbckErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HbckErrorReporter.ERROR_CODE</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/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/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/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/IdReadWriteLockWithObjectPool.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLockWithObjectPool.ReferenceType</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/DNS.ServerType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">DNS.ServerType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HbckErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HbckErrorReporter.ERROR_CODE</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLockWithObjectPool.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLockWithObjectPool.ReferenceType</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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index a04f920..791fd83 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -198,8 +198,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://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="https://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="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <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>
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index 4ee56a8..b0d525a 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -1381,7 +1381,6 @@
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">ImportTsv</span></a> (implements org.apache.hadoop.util.Tool)</li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/IndexBuilder.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">IndexBuilder</span></a> (implements org.apache.hadoop.util.Tool)</li>
 <li type="circle">org.apache.hadoop.hbase.http.log.<a href="org/apache/hadoop/hbase/http/log/LogLevel.CLI.html" title="class in org.apache.hadoop.hbase.http.log"><span class="typeNameLink">LogLevel.CLI</span></a> (implements org.apache.hadoop.util.Tool)</li>
-<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">MaintenanceLoadBalancer</span></a> (implements org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.util.compaction.<a href="org/apache/hadoop/hbase/util/compaction/MajorCompactor.html" title="class in org.apache.hadoop.hbase.util.compaction"><span class="typeNameLink">MajorCompactor</span></a> (implements org.apache.hadoop.util.Tool)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.util.compaction.<a href="org/apache/hadoop/hbase/util/compaction/MajorCompactorTTL.html" title="class in org.apache.hadoop.hbase.util.compaction"><span class="typeNameLink">MajorCompactorTTL</span></a>
@@ -2254,6 +2253,7 @@
 <li type="circle">org.apache.hadoop.hbase.io.util.<a href="org/apache/hadoop/hbase/io/util/LRUDictionary.BidirectionalLRUMap.ByteBufferBackedNode.html" title="class in org.apache.hadoop.hbase.io.util"><span class="typeNameLink">LRUDictionary.BidirectionalLRUMap.ByteBufferBackedNode</span></a></li>
 </ul>
 </li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/MaintenanceLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">MaintenanceLoadBalancer</span></a> (implements org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.util.compaction.<a href="org/apache/hadoop/hbase/util/compaction/MajorCompactionRequest.html" title="class in org.apache.hadoop.hbase.util.compaction"><span class="typeNameLink">MajorCompactionRequest</span></a>
 <ul>
 <li type="circle">org.apache.hadoop.hbase.util.compaction.<a href="org/apache/hadoop/hbase/util/compaction/MajorCompactionTTLRequest.html" title="class in org.apache.hadoop.hbase.util.compaction"><span class="typeNameLink">MajorCompactionTTLRequest</span></a></li>
@@ -4916,7 +4916,6 @@
 <li type="circle">org.apache.hadoop.hbase.constraint.<a href="org/apache/hadoop/hbase/constraint/Constraint.html" title="interface in org.apache.hadoop.hbase.constraint"><span class="typeNameLink">Constraint</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.html" title="interface in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">FileCleanerDelegate</span></a> (also extends org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HeapMemoryTuner.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HeapMemoryTuner</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">LoadBalancer</span></a> (also extends org.apache.hadoop.hbase.conf.<a href="org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Stoppable.html" title="interface in or [...]
 <li type="circle">org.apache.hadoop.hbase.master.normalizer.<a href="org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer"><span class="typeNameLink">RegionNormalizer</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="org/apache/hadoop/hbase/backup/RestoreJob.html" title="interface in org.apache.hadoop.hbase.backup"><span class="typeNameLink">RestoreJob</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.visibility.<a href="org/apache/hadoop/hbase/security/visibility/ScanLabelGenerator.html" title="interface in org.apache.hadoop.hbase.security.visibility"><span class="typeNameLink">ScanLabelGenerator</span></a></li>
@@ -4926,7 +4925,7 @@
 </li>
 <li type="circle">org.apache.hadoop.hbase.conf.<a href="org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf"><span class="typeNameLink">ConfigurationObserver</span></a>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">LoadBalancer</span></a> (also extends org.apache.hadoop.conf.Configurable, org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">LoadBalancer</span></a> (also extends org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.conf.<a href="org/apache/hadoop/hbase/conf/PropagatingConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf"><span class="typeNameLink">PropagatingConfigurationObserver</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region</span></a></li>
 </ul>
@@ -5348,7 +5347,7 @@
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase"><span class="typeNameLink">Stoppable</span></a>
 <ul>
 <li type="circle">org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.html" title="interface in org.apache.hadoop.hbase.master.cleaner"><span class="typeNameLink">FileCleanerDelegate</span></a> (also extends org.apache.hadoop.conf.Configurable)</li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">LoadBalancer</span></a> (also extends org.apache.hadoop.conf.Configurable, org.apache.hadoop.hbase.conf.<a href="org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">LoadBalancer</span></a> (also extends org.apache.hadoop.hbase.conf.<a href="org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterServices</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionServerServices</span></a> (also extends org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/FavoredNodesForRegion.html" title="interface in org.apache.hadoop.hbase.regionserver">FavoredNodesForRegion</a>, org.apache.hadoop.hbase.regionserver. [...]
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase"><span class="typeNameLink">Server</span></a> (also extends org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>)
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html b/devapidocs/src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html
index 148980f..6f7a22f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/favored/FavoredNodeLoadBalancer.html
@@ -37,425 +37,416 @@
 <span class="sourceLineNo">029</span>import java.util.List;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import java.util.Map;<a name="line.30"></a>
 <span class="sourceLineNo">031</span>import java.util.Set;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.conf.Configuration;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.ServerMetrics;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.ServerName;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.TableName;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.favored.FavoredNodesPlan.Position;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.master.RackManager;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.master.RegionPlan;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.master.ServerManager;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.master.SnapshotOfRegionAssignmentFromMeta;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.slf4j.Logger;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.slf4j.LoggerFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hbase.thirdparty.com.google.common.collect.Sets;<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">056</span> * An implementation of the {@link org.apache.hadoop.hbase.master.LoadBalancer} that<a name="line.56"></a>
-<span class="sourceLineNo">057</span> * assigns favored nodes for each region. There is a Primary RegionServer that hosts<a name="line.57"></a>
-<span class="sourceLineNo">058</span> * the region, and then there is Secondary and Tertiary RegionServers. Currently, the<a name="line.58"></a>
-<span class="sourceLineNo">059</span> * favored nodes information is used in creating HDFS files - the Primary RegionServer<a name="line.59"></a>
-<span class="sourceLineNo">060</span> * passes the primary, secondary, tertiary node addresses as hints to the<a name="line.60"></a>
-<span class="sourceLineNo">061</span> * DistributedFileSystem API for creating files on the filesystem. These nodes are<a name="line.61"></a>
-<span class="sourceLineNo">062</span> * treated as hints by the HDFS to place the blocks of the file. This alleviates the<a name="line.62"></a>
-<span class="sourceLineNo">063</span> * problem to do with reading from remote nodes (since we can make the Secondary<a name="line.63"></a>
-<span class="sourceLineNo">064</span> * RegionServer as the new Primary RegionServer) after a region is recovered. This<a name="line.64"></a>
-<span class="sourceLineNo">065</span> * should help provide consistent read latencies for the regions even when their<a name="line.65"></a>
-<span class="sourceLineNo">066</span> * primary region servers die.<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>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.69"></a>
-<span class="sourceLineNo">070</span>public class FavoredNodeLoadBalancer extends BaseLoadBalancer implements FavoredNodesPromoter {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private static final Logger LOG = LoggerFactory.getLogger(FavoredNodeLoadBalancer.class);<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private MasterServices services;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  private RackManager rackManager;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private Configuration conf;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private FavoredNodesManager fnm;<a name="line.76"></a>
-<span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>  @Override<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  public void setConf(Configuration conf) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    this.conf = conf;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  }<a name="line.81"></a>
-<span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public void setMasterServices(MasterServices services) {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    this.services = services;<a name="line.84"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HBaseIOException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.ServerMetrics;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.ServerName;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.TableName;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.favored.FavoredNodesPlan.Position;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.master.MasterServices;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.master.RackManager;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.master.RegionPlan;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.master.ServerManager;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.master.SnapshotOfRegionAssignmentFromMeta;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.slf4j.Logger;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.slf4j.LoggerFactory;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hbase.thirdparty.com.google.common.collect.Lists;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hbase.thirdparty.com.google.common.collect.Maps;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hbase.thirdparty.com.google.common.collect.Sets;<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> * An implementation of the {@link org.apache.hadoop.hbase.master.LoadBalancer} that<a name="line.55"></a>
+<span class="sourceLineNo">056</span> * assigns favored nodes for each region. There is a Primary RegionServer that hosts<a name="line.56"></a>
+<span class="sourceLineNo">057</span> * the region, and then there is Secondary and Tertiary RegionServers. Currently, the<a name="line.57"></a>
+<span class="sourceLineNo">058</span> * favored nodes information is used in creating HDFS files - the Primary RegionServer<a name="line.58"></a>
+<span class="sourceLineNo">059</span> * passes the primary, secondary, tertiary node addresses as hints to the<a name="line.59"></a>
+<span class="sourceLineNo">060</span> * DistributedFileSystem API for creating files on the filesystem. These nodes are<a name="line.60"></a>
+<span class="sourceLineNo">061</span> * treated as hints by the HDFS to place the blocks of the file. This alleviates the<a name="line.61"></a>
+<span class="sourceLineNo">062</span> * problem to do with reading from remote nodes (since we can make the Secondary<a name="line.62"></a>
+<span class="sourceLineNo">063</span> * RegionServer as the new Primary RegionServer) after a region is recovered. This<a name="line.63"></a>
+<span class="sourceLineNo">064</span> * should help provide consistent read latencies for the regions even when their<a name="line.64"></a>
+<span class="sourceLineNo">065</span> * primary region servers die.<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>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.68"></a>
+<span class="sourceLineNo">069</span>public class FavoredNodeLoadBalancer extends BaseLoadBalancer implements FavoredNodesPromoter {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private static final Logger LOG = LoggerFactory.getLogger(FavoredNodeLoadBalancer.class);<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private MasterServices services;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  private RackManager rackManager;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private FavoredNodesManager fnm;<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  public void setMasterServices(MasterServices services) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    this.services = services;<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 synchronized void initialize() throws HBaseIOException {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    super.initialize();<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    this.fnm = services.getFavoredNodesManager();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    this.rackManager = new RackManager(getConf());<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 synchronized void initialize() throws HBaseIOException {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    super.initialize();<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    super.setConf(conf);<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    this.fnm = services.getFavoredNodesManager();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    this.rackManager = new RackManager(conf);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    super.setConf(conf);<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>  protected List&lt;RegionPlan&gt; balanceTable(TableName tableName,<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; loadOfOneTable) {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    // TODO. Look at is whether Stochastic loadbalancer can be integrated with this<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    List&lt;RegionPlan&gt; plans = new ArrayList&lt;&gt;();<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    // perform a scan of the meta to get the latest updates (if any)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    SnapshotOfRegionAssignmentFromMeta snaphotOfRegionAssignment =<a name="line.102"></a>
-<span class="sourceLineNo">103</span>        new SnapshotOfRegionAssignmentFromMeta(services.getConnection());<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    try {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      snaphotOfRegionAssignment.initialize();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    } catch (IOException ie) {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      LOG.warn("Not running balancer since exception was thrown " + ie);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      return plans;<a name="line.108"></a>
+<span class="sourceLineNo">088</span>  protected List&lt;RegionPlan&gt; balanceTable(TableName tableName,<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; loadOfOneTable) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    // TODO. Look at is whether Stochastic loadbalancer can be integrated with this<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    List&lt;RegionPlan&gt; plans = new ArrayList&lt;&gt;();<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    // perform a scan of the meta to get the latest updates (if any)<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    SnapshotOfRegionAssignmentFromMeta snaphotOfRegionAssignment =<a name="line.93"></a>
+<span class="sourceLineNo">094</span>        new SnapshotOfRegionAssignmentFromMeta(services.getConnection());<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    try {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      snaphotOfRegionAssignment.initialize();<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    } catch (IOException ie) {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      LOG.warn("Not running balancer since exception was thrown " + ie);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      return plans;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    // This is not used? Findbugs says so: Map&lt;ServerName, ServerName&gt;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    // serverNameToServerNameWithoutCode = new HashMap&lt;&gt;();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    Map&lt;ServerName, ServerName&gt; serverNameWithoutCodeToServerName = new HashMap&lt;&gt;();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    ServerManager serverMgr = services.getServerManager();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    for (ServerName sn : serverMgr.getOnlineServersList()) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      ServerName s = ServerName.valueOf(sn.getHostname(), sn.getPort(), ServerName.NON_STARTCODE);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      // FindBugs complains about useless store! serverNameToServerNameWithoutCode.put(sn, s);<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      serverNameWithoutCodeToServerName.put(s, sn);<a name="line.108"></a>
 <span class="sourceLineNo">109</span>    }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    // This is not used? Findbugs says so: Map&lt;ServerName, ServerName&gt;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    // serverNameToServerNameWithoutCode = new HashMap&lt;&gt;();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    Map&lt;ServerName, ServerName&gt; serverNameWithoutCodeToServerName = new HashMap&lt;&gt;();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    ServerManager serverMgr = services.getServerManager();<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    for (ServerName sn : serverMgr.getOnlineServersList()) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      ServerName s = ServerName.valueOf(sn.getHostname(), sn.getPort(), ServerName.NON_STARTCODE);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      // FindBugs complains about useless store! serverNameToServerNameWithoutCode.put(sn, s);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      serverNameWithoutCodeToServerName.put(s, sn);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    for (Map.Entry&lt;ServerName, List&lt;RegionInfo&gt;&gt; entry : loadOfOneTable.entrySet()) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      ServerName currentServer = entry.getKey();<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      // get a server without the startcode for the currentServer<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      ServerName currentServerWithoutStartCode = ServerName.valueOf(currentServer.getHostname(),<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        currentServer.getPort(), ServerName.NON_STARTCODE);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      List&lt;RegionInfo&gt; list = entry.getValue();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      for (RegionInfo region : list) {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        if (!FavoredNodesManager.isFavoredNodeApplicable(region)) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>          continue;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        List&lt;ServerName&gt; favoredNodes = fnm.getFavoredNodes(region);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>        if (favoredNodes == null || favoredNodes.get(0).equals(currentServerWithoutStartCode)) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>          continue; // either favorednodes does not exist or we are already on the primary node<a name="line.131"></a>
-<span class="sourceLineNo">132</span>        }<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        ServerName destination = null;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>        // check whether the primary is available<a name="line.134"></a>
-<span class="sourceLineNo">135</span>        destination = serverNameWithoutCodeToServerName.get(favoredNodes.get(0));<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        if (destination == null) {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>          // check whether the region is on secondary/tertiary<a name="line.137"></a>
-<span class="sourceLineNo">138</span>          if (currentServerWithoutStartCode.equals(favoredNodes.get(1))<a name="line.138"></a>
-<span class="sourceLineNo">139</span>              || currentServerWithoutStartCode.equals(favoredNodes.get(2))) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>            continue;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>          }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>          // the region is currently on none of the favored nodes<a name="line.142"></a>
-<span class="sourceLineNo">143</span>          // get it on one of them if possible<a name="line.143"></a>
-<span class="sourceLineNo">144</span>          ServerMetrics l1 = services.getServerManager()<a name="line.144"></a>
-<span class="sourceLineNo">145</span>              .getLoad(serverNameWithoutCodeToServerName.get(favoredNodes.get(1)));<a name="line.145"></a>
-<span class="sourceLineNo">146</span>          ServerMetrics l2 = services.getServerManager()<a name="line.146"></a>
-<span class="sourceLineNo">147</span>              .getLoad(serverNameWithoutCodeToServerName.get(favoredNodes.get(2)));<a name="line.147"></a>
-<span class="sourceLineNo">148</span>          if (l1 != null &amp;&amp; l2 != null) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>            if (l1.getRegionMetrics().size() &gt; l2.getRegionMetrics().size()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>              destination = serverNameWithoutCodeToServerName.get(favoredNodes.get(2));<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            } else {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>              destination = serverNameWithoutCodeToServerName.get(favoredNodes.get(1));<a name="line.152"></a>
-<span class="sourceLineNo">153</span>            }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>          } else if (l1 != null) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>            destination = serverNameWithoutCodeToServerName.get(favoredNodes.get(1));<a name="line.155"></a>
-<span class="sourceLineNo">156</span>          } else if (l2 != null) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>            destination = serverNameWithoutCodeToServerName.get(favoredNodes.get(2));<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        }<a name="line.159"></a>
+<span class="sourceLineNo">110</span>    for (Map.Entry&lt;ServerName, List&lt;RegionInfo&gt;&gt; entry : loadOfOneTable.entrySet()) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      ServerName currentServer = entry.getKey();<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      // get a server without the startcode for the currentServer<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      ServerName currentServerWithoutStartCode = ServerName.valueOf(currentServer.getHostname(),<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        currentServer.getPort(), ServerName.NON_STARTCODE);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      List&lt;RegionInfo&gt; list = entry.getValue();<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      for (RegionInfo region : list) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        if (!FavoredNodesManager.isFavoredNodeApplicable(region)) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>          continue;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>        }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>        List&lt;ServerName&gt; favoredNodes = fnm.getFavoredNodes(region);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        if (favoredNodes == null || favoredNodes.get(0).equals(currentServerWithoutStartCode)) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>          continue; // either favorednodes does not exist or we are already on the primary node<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        ServerName destination = null;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        // check whether the primary is available<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        destination = serverNameWithoutCodeToServerName.get(favoredNodes.get(0));<a name="line.126"></a>
+<span class="sourceLineNo">127</span>        if (destination == null) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>          // check whether the region is on secondary/tertiary<a name="line.128"></a>
+<span class="sourceLineNo">129</span>          if (currentServerWithoutStartCode.equals(favoredNodes.get(1))<a name="line.129"></a>
+<span class="sourceLineNo">130</span>              || currentServerWithoutStartCode.equals(favoredNodes.get(2))) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>            continue;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>          }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>          // the region is currently on none of the favored nodes<a name="line.133"></a>
+<span class="sourceLineNo">134</span>          // get it on one of them if possible<a name="line.134"></a>
+<span class="sourceLineNo">135</span>          ServerMetrics l1 = services.getServerManager()<a name="line.135"></a>
+<span class="sourceLineNo">136</span>              .getLoad(serverNameWithoutCodeToServerName.get(favoredNodes.get(1)));<a name="line.136"></a>
+<span class="sourceLineNo">137</span>          ServerMetrics l2 = services.getServerManager()<a name="line.137"></a>
+<span class="sourceLineNo">138</span>              .getLoad(serverNameWithoutCodeToServerName.get(favoredNodes.get(2)));<a name="line.138"></a>
+<span class="sourceLineNo">139</span>          if (l1 != null &amp;&amp; l2 != null) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>            if (l1.getRegionMetrics().size() &gt; l2.getRegionMetrics().size()) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>              destination = serverNameWithoutCodeToServerName.get(favoredNodes.get(2));<a name="line.141"></a>
+<span class="sourceLineNo">142</span>            } else {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>              destination = serverNameWithoutCodeToServerName.get(favoredNodes.get(1));<a name="line.143"></a>
+<span class="sourceLineNo">144</span>            }<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          } else if (l1 != null) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>            destination = serverNameWithoutCodeToServerName.get(favoredNodes.get(1));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>          } else if (l2 != null) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>            destination = serverNameWithoutCodeToServerName.get(favoredNodes.get(2));<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">151</span><a name="line.151"></a>
+<span class="sourceLineNo">152</span>        if (destination != null) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>          RegionPlan plan = new RegionPlan(region, currentServer, destination);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>          plans.add(plan);<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>    }<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    return plans;<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>        if (destination != null) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>          RegionPlan plan = new RegionPlan(region, currentServer, destination);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>          plans.add(plan);<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>    }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    return plans;<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>  @NonNull<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; roundRobinAssignment(List&lt;RegionInfo&gt; regions,<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      List&lt;ServerName&gt; servers) throws HBaseIOException {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignmentMap;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    try {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      FavoredNodeAssignmentHelper assignmentHelper =<a name="line.176"></a>
-<span class="sourceLineNo">177</span>          new FavoredNodeAssignmentHelper(servers, rackManager);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      assignmentHelper.initialize();<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      if (!assignmentHelper.canPlaceFavoredNodes()) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>        return super.roundRobinAssignment(regions, servers);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      }<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      // Segregate the regions into two types:<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      // 1. The regions that have favored node assignment, and where at least<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      //    one of the favored node is still alive. In this case, try to adhere<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      //    to the current favored nodes assignment as much as possible - i.e.,<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      //    if the current primary is gone, then make the secondary or tertiary<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      //    as the new host for the region (based on their current load).<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      //    Note that we don't change the favored<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      //    node assignments here (even though one or more favored node is currently<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      //    down). It is up to the balanceCluster to do this hard work. The HDFS<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      //    can handle the fact that some nodes in the favored nodes hint is down<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      //    It'd allocate some other DNs. In combination with stale settings for HDFS,<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      //    we should be just fine.<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      // 2. The regions that currently don't have favored node assignment. We will<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      //    need to come up with favored nodes assignments for them. The corner case<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      //    in (1) above is that all the nodes are unavailable and in that case, we<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      //    will note that this region doesn't have favored nodes.<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      Pair&lt;Map&lt;ServerName,List&lt;RegionInfo&gt;&gt;, List&lt;RegionInfo&gt;&gt; segregatedRegions =<a name="line.198"></a>
-<span class="sourceLineNo">199</span>          segregateRegionsAndAssignRegionsWithFavoredNodes(regions, servers);<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      Map&lt;ServerName,List&lt;RegionInfo&gt;&gt; regionsWithFavoredNodesMap = segregatedRegions.getFirst();<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      List&lt;RegionInfo&gt; regionsWithNoFavoredNodes = segregatedRegions.getSecond();<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      assignmentMap = new HashMap&lt;&gt;();<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      roundRobinAssignmentImpl(assignmentHelper, assignmentMap, regionsWithNoFavoredNodes,<a name="line.203"></a>
-<span class="sourceLineNo">204</span>          servers);<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      // merge the assignment maps<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      assignmentMap.putAll(regionsWithFavoredNodesMap);<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    } catch (Exception ex) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      LOG.warn("Encountered exception while doing favored-nodes assignment " + ex +<a name="line.208"></a>
-<span class="sourceLineNo">209</span>          " Falling back to regular assignment");<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      assignmentMap = super.roundRobinAssignment(regions, servers);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    return assignmentMap;<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 ServerName randomAssignment(RegionInfo regionInfo, List&lt;ServerName&gt; servers)<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      throws HBaseIOException {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    try {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      FavoredNodeAssignmentHelper assignmentHelper =<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          new FavoredNodeAssignmentHelper(servers, rackManager);<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      assignmentHelper.initialize();<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      ServerName primary = super.randomAssignment(regionInfo, servers);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      if (!FavoredNodesManager.isFavoredNodeApplicable(regionInfo)<a name="line.223"></a>
-<span class="sourceLineNo">224</span>          || !assignmentHelper.canPlaceFavoredNodes()) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        return primary;<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      }<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      List&lt;ServerName&gt; favoredNodes = fnm.getFavoredNodes(regionInfo);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      // check if we have a favored nodes mapping for this region and if so, return<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      // a server from the favored nodes list if the passed 'servers' contains this<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      // server as well (available servers, that is)<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      if (favoredNodes != null) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        for (ServerName s : favoredNodes) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>          ServerName serverWithLegitStartCode = availableServersContains(servers, s);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>          if (serverWithLegitStartCode != null) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>            return serverWithLegitStartCode;<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>      List&lt;RegionInfo&gt; regions = new ArrayList&lt;&gt;(1);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      regions.add(regionInfo);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      Map&lt;RegionInfo, ServerName&gt; primaryRSMap = new HashMap&lt;&gt;(1);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      primaryRSMap.put(regionInfo, primary);<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      assignSecondaryAndTertiaryNodesForRegion(assignmentHelper, regions, primaryRSMap);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      return primary;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    } catch (Exception ex) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      LOG.warn("Encountered exception while doing favored-nodes (random)assignment " + ex +<a name="line.246"></a>
-<span class="sourceLineNo">247</span>          " Falling back to regular assignment");<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      return super.randomAssignment(regionInfo, servers);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span><a name="line.251"></a>
-<span class="sourceLineNo">252</span>  private Pair&lt;Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;, List&lt;RegionInfo&gt;&gt;<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    segregateRegionsAndAssignRegionsWithFavoredNodes(List&lt;RegionInfo&gt; regions,<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      List&lt;ServerName&gt; availableServers) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignmentMapForFavoredNodes =<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      new HashMap&lt;&gt;(regions.size() / 2);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    List&lt;RegionInfo&gt; regionsWithNoFavoredNodes = new ArrayList&lt;&gt;(regions.size() / 2);<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    for (RegionInfo region : regions) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      List&lt;ServerName&gt; favoredNodes = fnm.getFavoredNodes(region);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      ServerName primaryHost = null;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      ServerName secondaryHost = null;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      ServerName tertiaryHost = null;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (favoredNodes != null) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        for (ServerName s : favoredNodes) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>          ServerName serverWithLegitStartCode = availableServersContains(availableServers, s);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>          if (serverWithLegitStartCode != null) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>            FavoredNodesPlan.Position position =<a name="line.267"></a>
-<span class="sourceLineNo">268</span>                FavoredNodesPlan.getFavoredServerPosition(favoredNodes, s);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>            if (Position.PRIMARY.equals(position)) {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>              primaryHost = serverWithLegitStartCode;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>            } else if (Position.SECONDARY.equals(position)) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>              secondaryHost = serverWithLegitStartCode;<a name="line.272"></a>
-<span class="sourceLineNo">273</span>            } else if (Position.TERTIARY.equals(position)) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>              tertiaryHost = serverWithLegitStartCode;<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>        }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>        assignRegionToAvailableFavoredNode(assignmentMapForFavoredNodes, region,<a name="line.278"></a>
-<span class="sourceLineNo">279</span>              primaryHost, secondaryHost, tertiaryHost);<a name="line.279"></a>
-<span class="sourceLineNo">280</span>      }<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      if (primaryHost == null &amp;&amp; secondaryHost == null &amp;&amp; tertiaryHost == null) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>        //all favored nodes unavailable<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        regionsWithNoFavoredNodes.add(region);<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    }<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    return new Pair&lt;&gt;(assignmentMapForFavoredNodes, regionsWithNoFavoredNodes);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>  }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span>  // Do a check of the hostname and port and return the servername from the servers list<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  // that matched (the favoredNode will have a startcode of -1 but we want the real<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  // server with the legit startcode<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  private ServerName availableServersContains(List&lt;ServerName&gt; servers, ServerName favoredNode) {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    for (ServerName server : servers) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      if (ServerName.isSameAddress(favoredNode, server)) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        return server;<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>    return null;<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>  private void assignRegionToAvailableFavoredNode(Map&lt;ServerName,<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      List&lt;RegionInfo&gt;&gt; assignmentMapForFavoredNodes, RegionInfo region, ServerName primaryHost,<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      ServerName secondaryHost, ServerName tertiaryHost) {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    if (primaryHost != null) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      addRegionToMap(assignmentMapForFavoredNodes, region, primaryHost);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    } else if (secondaryHost != null &amp;&amp; tertiaryHost != null) {<a name="line.306"></a>
-<span class="sourceLineNo">307</span>      // assign the region to the one with a lower load<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      // (both have the desired hdfs blocks)<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      ServerName s;<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      ServerMetrics tertiaryLoad = services.getServerManager().getLoad(tertiaryHost);<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      ServerMetrics secondaryLoad = services.getServerManager().getLoad(secondaryHost);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      if (secondaryLoad.getRegionMetrics().size() &lt; tertiaryLoad.getRegionMetrics().size()) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        s = secondaryHost;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      } else {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>        s = tertiaryHost;<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      addRegionToMap(assignmentMapForFavoredNodes, region, s);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    } else if (secondaryHost != null) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      addRegionToMap(assignmentMapForFavoredNodes, region, secondaryHost);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    } else if (tertiaryHost != null) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      addRegionToMap(assignmentMapForFavoredNodes, region, tertiaryHost);<a name="line.321"></a>
+<span class="sourceLineNo">161</span>  @Override<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  @NonNull<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  public Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; roundRobinAssignment(List&lt;RegionInfo&gt; regions,<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      List&lt;ServerName&gt; servers) throws HBaseIOException {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignmentMap;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    try {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      FavoredNodeAssignmentHelper assignmentHelper =<a name="line.167"></a>
+<span class="sourceLineNo">168</span>          new FavoredNodeAssignmentHelper(servers, rackManager);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      assignmentHelper.initialize();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      if (!assignmentHelper.canPlaceFavoredNodes()) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        return super.roundRobinAssignment(regions, servers);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      }<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      // Segregate the regions into two types:<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      // 1. The regions that have favored node assignment, and where at least<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      //    one of the favored node is still alive. In this case, try to adhere<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      //    to the current favored nodes assignment as much as possible - i.e.,<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      //    if the current primary is gone, then make the secondary or tertiary<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      //    as the new host for the region (based on their current load).<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      //    Note that we don't change the favored<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      //    node assignments here (even though one or more favored node is currently<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      //    down). It is up to the balanceCluster to do this hard work. The HDFS<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      //    can handle the fact that some nodes in the favored nodes hint is down<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      //    It'd allocate some other DNs. In combination with stale settings for HDFS,<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      //    we should be just fine.<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      // 2. The regions that currently don't have favored node assignment. We will<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      //    need to come up with favored nodes assignments for them. The corner case<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      //    in (1) above is that all the nodes are unavailable and in that case, we<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      //    will note that this region doesn't have favored nodes.<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      Pair&lt;Map&lt;ServerName,List&lt;RegionInfo&gt;&gt;, List&lt;RegionInfo&gt;&gt; segregatedRegions =<a name="line.189"></a>
+<span class="sourceLineNo">190</span>          segregateRegionsAndAssignRegionsWithFavoredNodes(regions, servers);<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      Map&lt;ServerName,List&lt;RegionInfo&gt;&gt; regionsWithFavoredNodesMap = segregatedRegions.getFirst();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      List&lt;RegionInfo&gt; regionsWithNoFavoredNodes = segregatedRegions.getSecond();<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      assignmentMap = new HashMap&lt;&gt;();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      roundRobinAssignmentImpl(assignmentHelper, assignmentMap, regionsWithNoFavoredNodes,<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          servers);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      // merge the assignment maps<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      assignmentMap.putAll(regionsWithFavoredNodesMap);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    } catch (Exception ex) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      LOG.warn("Encountered exception while doing favored-nodes assignment " + ex +<a name="line.199"></a>
+<span class="sourceLineNo">200</span>          " Falling back to regular assignment");<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      assignmentMap = super.roundRobinAssignment(regions, servers);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    return assignmentMap;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  }<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>  @Override<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  public ServerName randomAssignment(RegionInfo regionInfo, List&lt;ServerName&gt; servers)<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      throws HBaseIOException {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    try {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>      FavoredNodeAssignmentHelper assignmentHelper =<a name="line.210"></a>
+<span class="sourceLineNo">211</span>          new FavoredNodeAssignmentHelper(servers, rackManager);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      assignmentHelper.initialize();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      ServerName primary = super.randomAssignment(regionInfo, servers);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      if (!FavoredNodesManager.isFavoredNodeApplicable(regionInfo)<a name="line.214"></a>
+<span class="sourceLineNo">215</span>          || !assignmentHelper.canPlaceFavoredNodes()) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        return primary;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      List&lt;ServerName&gt; favoredNodes = fnm.getFavoredNodes(regionInfo);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      // check if we have a favored nodes mapping for this region and if so, return<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      // a server from the favored nodes list if the passed 'servers' contains this<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      // server as well (available servers, that is)<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      if (favoredNodes != null) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        for (ServerName s : favoredNodes) {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>          ServerName serverWithLegitStartCode = availableServersContains(servers, s);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>          if (serverWithLegitStartCode != null) {<a name="line.225"></a>
+<span class="sourceLineNo">226</span>            return serverWithLegitStartCode;<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>      }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      List&lt;RegionInfo&gt; regions = new ArrayList&lt;&gt;(1);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      regions.add(regionInfo);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      Map&lt;RegionInfo, ServerName&gt; primaryRSMap = new HashMap&lt;&gt;(1);<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      primaryRSMap.put(regionInfo, primary);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      assignSecondaryAndTertiaryNodesForRegion(assignmentHelper, regions, primaryRSMap);<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      return primary;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    } catch (Exception ex) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      LOG.warn("Encountered exception while doing favored-nodes (random)assignment " + ex +<a name="line.237"></a>
+<span class="sourceLineNo">238</span>          " Falling back to regular assignment");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      return super.randomAssignment(regionInfo, servers);<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><a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private Pair&lt;Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;, List&lt;RegionInfo&gt;&gt;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    segregateRegionsAndAssignRegionsWithFavoredNodes(List&lt;RegionInfo&gt; regions,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      List&lt;ServerName&gt; availableServers) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignmentMapForFavoredNodes =<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      new HashMap&lt;&gt;(regions.size() / 2);<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    List&lt;RegionInfo&gt; regionsWithNoFavoredNodes = new ArrayList&lt;&gt;(regions.size() / 2);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    for (RegionInfo region : regions) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      List&lt;ServerName&gt; favoredNodes = fnm.getFavoredNodes(region);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      ServerName primaryHost = null;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      ServerName secondaryHost = null;<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      ServerName tertiaryHost = null;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      if (favoredNodes != null) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        for (ServerName s : favoredNodes) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          ServerName serverWithLegitStartCode = availableServersContains(availableServers, s);<a name="line.256"></a>
+<span class="sourceLineNo">257</span>          if (serverWithLegitStartCode != null) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>            FavoredNodesPlan.Position position =<a name="line.258"></a>
+<span class="sourceLineNo">259</span>                FavoredNodesPlan.getFavoredServerPosition(favoredNodes, s);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>            if (Position.PRIMARY.equals(position)) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>              primaryHost = serverWithLegitStartCode;<a name="line.261"></a>
+<span class="sourceLineNo">262</span>            } else if (Position.SECONDARY.equals(position)) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span>              secondaryHost = serverWithLegitStartCode;<a name="line.263"></a>
+<span class="sourceLineNo">264</span>            } else if (Position.TERTIARY.equals(position)) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>              tertiaryHost = serverWithLegitStartCode;<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>        }<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        assignRegionToAvailableFavoredNode(assignmentMapForFavoredNodes, region,<a name="line.269"></a>
+<span class="sourceLineNo">270</span>              primaryHost, secondaryHost, tertiaryHost);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      if (primaryHost == null &amp;&amp; secondaryHost == null &amp;&amp; tertiaryHost == null) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        //all favored nodes unavailable<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        regionsWithNoFavoredNodes.add(region);<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 new Pair&lt;&gt;(assignmentMapForFavoredNodes, regionsWithNoFavoredNodes);<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>  // Do a check of the hostname and port and return the servername from the servers list<a name="line.280"></a>
+<span class="sourceLineNo">281</span>  // that matched (the favoredNode will have a startcode of -1 but we want the real<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  // server with the legit startcode<a name="line.282"></a>
+<span class="sourceLineNo">283</span>  private ServerName availableServersContains(List&lt;ServerName&gt; servers, ServerName favoredNode) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    for (ServerName server : servers) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      if (ServerName.isSameAddress(favoredNode, server)) {<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        return server;<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      }<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    return null;<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 assignRegionToAvailableFavoredNode(Map&lt;ServerName,<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      List&lt;RegionInfo&gt;&gt; assignmentMapForFavoredNodes, RegionInfo region, ServerName primaryHost,<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      ServerName secondaryHost, ServerName tertiaryHost) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>    if (primaryHost != null) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      addRegionToMap(assignmentMapForFavoredNodes, region, primaryHost);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    } else if (secondaryHost != null &amp;&amp; tertiaryHost != null) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      // assign the region to the one with a lower load<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      // (both have the desired hdfs blocks)<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      ServerName s;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      ServerMetrics tertiaryLoad = services.getServerManager().getLoad(tertiaryHost);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      ServerMetrics secondaryLoad = services.getServerManager().getLoad(secondaryHost);<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      if (secondaryLoad.getRegionMetrics().size() &lt; tertiaryLoad.getRegionMetrics().size()) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>        s = secondaryHost;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      } else {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        s = tertiaryHost;<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      }<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      addRegionToMap(assignmentMapForFavoredNodes, region, s);<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    } else if (secondaryHost != null) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>      addRegionToMap(assignmentMapForFavoredNodes, region, secondaryHost);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    } else if (tertiaryHost != null) {<a name="line.311"></a>
+<span class="sourceLineNo">312</span>      addRegionToMap(assignmentMapForFavoredNodes, region, tertiaryHost);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    }<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>  private void addRegionToMap(Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignmentMapForFavoredNodes,<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    RegionInfo region, ServerName host) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    List&lt;RegionInfo&gt; regionsOnServer = assignmentMapForFavoredNodes.get(host);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    if (regionsOnServer == null) {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      regionsOnServer = new ArrayList&lt;&gt;();<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      assignmentMapForFavoredNodes.put(host, regionsOnServer);<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><a name="line.324"></a>
-<span class="sourceLineNo">325</span>  private void addRegionToMap(Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignmentMapForFavoredNodes,<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    RegionInfo region, ServerName host) {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    List&lt;RegionInfo&gt; regionsOnServer = assignmentMapForFavoredNodes.get(host);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (regionsOnServer == null) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      regionsOnServer = new ArrayList&lt;&gt;();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      assignmentMapForFavoredNodes.put(host, regionsOnServer);<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    }<a name="line.331"></a>
-<span class="sourceLineNo">332</span>    regionsOnServer.add(region);<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  }<a name="line.333"></a>
-<span class="sourceLineNo">334</span><a name="line.334"></a>
-<span class="sourceLineNo">335</span>  @Override<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  public synchronized List&lt;ServerName&gt; getFavoredNodes(RegionInfo regionInfo) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    return this.fnm.getFavoredNodes(regionInfo);<a name="line.337"></a>
+<span class="sourceLineNo">323</span>    regionsOnServer.add(region);<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>  @Override<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public synchronized List&lt;ServerName&gt; getFavoredNodes(RegionInfo regionInfo) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    return this.fnm.getFavoredNodes(regionInfo);<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>  private void roundRobinAssignmentImpl(FavoredNodeAssignmentHelper assignmentHelper,<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignmentMap,<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      List&lt;RegionInfo&gt; regions, List&lt;ServerName&gt; servers) throws IOException {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    Map&lt;RegionInfo, ServerName&gt; primaryRSMap = new HashMap&lt;&gt;();<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    // figure the primary RSs<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    assignmentHelper.placePrimaryRSAsRoundRobin(assignmentMap, primaryRSMap, regions);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    assignSecondaryAndTertiaryNodesForRegion(assignmentHelper, regions, primaryRSMap);<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>  private void roundRobinAssignmentImpl(FavoredNodeAssignmentHelper assignmentHelper,<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; assignmentMap,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      List&lt;RegionInfo&gt; regions, List&lt;ServerName&gt; servers) throws IOException {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    Map&lt;RegionInfo, ServerName&gt; primaryRSMap = new HashMap&lt;&gt;();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    // figure the primary RSs<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    assignmentHelper.placePrimaryRSAsRoundRobin(assignmentMap, primaryRSMap, regions);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    assignSecondaryAndTertiaryNodesForRegion(assignmentHelper, regions, primaryRSMap);<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>  private void assignSecondaryAndTertiaryNodesForRegion(<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      FavoredNodeAssignmentHelper assignmentHelper,<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      List&lt;RegionInfo&gt; regions, Map&lt;RegionInfo, ServerName&gt; primaryRSMap) throws IOException {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    // figure the secondary and tertiary RSs<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    Map&lt;RegionInfo, ServerName[]&gt; secondaryAndTertiaryRSMap =<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        assignmentHelper.placeSecondaryAndTertiaryRS(primaryRSMap);<a name="line.354"></a>
-<span class="sourceLineNo">355</span><a name="line.355"></a>
-<span class="sourceLineNo">356</span>    Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; regionFNMap = Maps.newHashMap();<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    // now record all the assignments so that we can serve queries later<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    for (RegionInfo region : regions) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      // Store the favored nodes without startCode for the ServerName objects<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      // We don't care about the startcode; but only the hostname really<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      List&lt;ServerName&gt; favoredNodesForRegion = new ArrayList&lt;&gt;(3);<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      ServerName sn = primaryRSMap.get(region);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      favoredNodesForRegion.add(ServerName.valueOf(sn.getHostname(), sn.getPort(),<a name="line.363"></a>
-<span class="sourceLineNo">364</span>          ServerName.NON_STARTCODE));<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      ServerName[] secondaryAndTertiaryNodes = secondaryAndTertiaryRSMap.get(region);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      if (secondaryAndTertiaryNodes != null) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        favoredNodesForRegion.add(ServerName.valueOf(secondaryAndTertiaryNodes[0].getHostname(),<a name="line.367"></a>
-<span class="sourceLineNo">368</span>            secondaryAndTertiaryNodes[0].getPort(), ServerName.NON_STARTCODE));<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        favoredNodesForRegion.add(ServerName.valueOf(secondaryAndTertiaryNodes[1].getHostname(),<a name="line.369"></a>
-<span class="sourceLineNo">370</span>            secondaryAndTertiaryNodes[1].getPort(), ServerName.NON_STARTCODE));<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      regionFNMap.put(region, favoredNodesForRegion);<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    }<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    fnm.updateFavoredNodes(regionFNMap);<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>  /*<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * Generate Favored Nodes for daughters during region split.<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   *<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   * If the parent does not have FN, regenerates them for the daughters.<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   *<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   * If the parent has FN, inherit two FN from parent for each daughter and generate the remaining.<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * The primary FN for both the daughters should be the same as parent. Inherit the secondary<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   * FN from the parent but keep it different for each daughter. Choose the remaining FN<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   * randomly. This would give us better distribution over a period of time after enough splits.<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   */<a name="line.386"></a>
-<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  public void generateFavoredNodesForDaughter(List&lt;ServerName&gt; servers, RegionInfo parent,<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      RegionInfo regionA, RegionInfo regionB) throws IOException {<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>    Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; result = new HashMap&lt;&gt;();<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    FavoredNodeAssignmentHelper helper = new FavoredNodeAssignmentHelper(servers, rackManager);<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    helper.initialize();<a name="line.393"></a>
+<span class="sourceLineNo">340</span>  private void assignSecondaryAndTertiaryNodesForRegion(<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      FavoredNodeAssignmentHelper assignmentHelper,<a name="line.341"></a>
+<span class="sourceLineNo">342</span>      List&lt;RegionInfo&gt; regions, Map&lt;RegionInfo, ServerName&gt; primaryRSMap) throws IOException {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    // figure the secondary and tertiary RSs<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    Map&lt;RegionInfo, ServerName[]&gt; secondaryAndTertiaryRSMap =<a name="line.344"></a>
+<span class="sourceLineNo">345</span>        assignmentHelper.placeSecondaryAndTertiaryRS(primaryRSMap);<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>    Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; regionFNMap = Maps.newHashMap();<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    // now record all the assignments so that we can serve queries later<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    for (RegionInfo region : regions) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      // Store the favored nodes without startCode for the ServerName objects<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      // We don't care about the startcode; but only the hostname really<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      List&lt;ServerName&gt; favoredNodesForRegion = new ArrayList&lt;&gt;(3);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      ServerName sn = primaryRSMap.get(region);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>      favoredNodesForRegion.add(ServerName.valueOf(sn.getHostname(), sn.getPort(),<a name="line.354"></a>
+<span class="sourceLineNo">355</span>          ServerName.NON_STARTCODE));<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      ServerName[] secondaryAndTertiaryNodes = secondaryAndTertiaryRSMap.get(region);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      if (secondaryAndTertiaryNodes != null) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        favoredNodesForRegion.add(ServerName.valueOf(secondaryAndTertiaryNodes[0].getHostname(),<a name="line.358"></a>
+<span class="sourceLineNo">359</span>            secondaryAndTertiaryNodes[0].getPort(), ServerName.NON_STARTCODE));<a name="line.359"></a>
+<span class="sourceLineNo">360</span>        favoredNodesForRegion.add(ServerName.valueOf(secondaryAndTertiaryNodes[1].getHostname(),<a name="line.360"></a>
+<span class="sourceLineNo">361</span>            secondaryAndTertiaryNodes[1].getPort(), ServerName.NON_STARTCODE));<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      regionFNMap.put(region, favoredNodesForRegion);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    fnm.updateFavoredNodes(regionFNMap);<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>   * Generate Favored Nodes for daughters during region split.<a name="line.369"></a>
+<span class="sourceLineNo">370</span>   *<a name="line.370"></a>
+<span class="sourceLineNo">371</span>   * If the parent does not have FN, regenerates them for the daughters.<a name="line.371"></a>
+<span class="sourceLineNo">372</span>   *<a name="line.372"></a>
+<span class="sourceLineNo">373</span>   * If the parent has FN, inherit two FN from parent for each daughter and generate the remaining.<a name="line.373"></a>
+<span class="sourceLineNo">374</span>   * The primary FN for both the daughters should be the same as parent. Inherit the secondary<a name="line.374"></a>
+<span class="sourceLineNo">375</span>   * FN from the parent but keep it different for each daughter. Choose the remaining FN<a name="line.375"></a>
+<span class="sourceLineNo">376</span>   * randomly. This would give us better distribution over a period of time after enough splits.<a name="line.376"></a>
+<span class="sourceLineNo">377</span>   */<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  @Override<a name="line.378"></a>
+<span class="sourceLineNo">379</span>  public void generateFavoredNodesForDaughter(List&lt;ServerName&gt; servers, RegionInfo parent,<a name="line.379"></a>
+<span class="sourceLineNo">380</span>      RegionInfo regionA, RegionInfo regionB) throws IOException {<a name="line.380"></a>
+<span class="sourceLineNo">381</span><a name="line.381"></a>
+<span class="sourceLineNo">382</span>    Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; result = new HashMap&lt;&gt;();<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    FavoredNodeAssignmentHelper helper = new FavoredNodeAssignmentHelper(servers, rackManager);<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    helper.initialize();<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>    List&lt;ServerName&gt; parentFavoredNodes = getFavoredNodes(parent);<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    if (parentFavoredNodes == null) {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      LOG.debug("Unable to find favored nodes for parent, " + parent<a name="line.388"></a>
+<span class="sourceLineNo">389</span>          + " generating new favored nodes for daughter");<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      result.put(regionA, helper.generateFavoredNodes(regionA));<a name="line.390"></a>
+<span class="sourceLineNo">391</span>      result.put(regionB, helper.generateFavoredNodes(regionB));<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>    } else {<a name="line.393"></a>
 <span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span>    List&lt;ServerName&gt; parentFavoredNodes = getFavoredNodes(parent);<a name="line.395"></a>
-<span class="sourceLineNo">396</span>    if (parentFavoredNodes == null) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      LOG.debug("Unable to find favored nodes for parent, " + parent<a name="line.397"></a>
-<span class="sourceLineNo">398</span>          + " generating new favored nodes for daughter");<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      result.put(regionA, helper.generateFavoredNodes(regionA));<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      result.put(regionB, helper.generateFavoredNodes(regionB));<a name="line.400"></a>
-<span class="sourceLineNo">401</span><a name="line.401"></a>
-<span class="sourceLineNo">402</span>    } else {<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>      // Lets get the primary and secondary from parent for regionA<a name="line.404"></a>
-<span class="sourceLineNo">405</span>      Set&lt;ServerName&gt; regionAFN =<a name="line.405"></a>
-<span class="sourceLineNo">406</span>          getInheritedFNForDaughter(helper, parentFavoredNodes, PRIMARY, SECONDARY);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      result.put(regionA, Lists.newArrayList(regionAFN));<a name="line.407"></a>
+<span class="sourceLineNo">395</span>      // Lets get the primary and secondary from parent for regionA<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      Set&lt;ServerName&gt; regionAFN =<a name="line.396"></a>
+<span class="sourceLineNo">397</span>          getInheritedFNForDaughter(helper, parentFavoredNodes, PRIMARY, SECONDARY);<a name="line.397"></a>
+<span class="sourceLineNo">398</span>      result.put(regionA, Lists.newArrayList(regionAFN));<a name="line.398"></a>
+<span class="sourceLineNo">399</span><a name="line.399"></a>
+<span class="sourceLineNo">400</span>      // Lets get the primary and tertiary from parent for regionB<a name="line.400"></a>
+<span class="sourceLineNo">401</span>      Set&lt;ServerName&gt; regionBFN =<a name="line.401"></a>
+<span class="sourceLineNo">402</span>          getInheritedFNForDaughter(helper, parentFavoredNodes, PRIMARY, TERTIARY);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      result.put(regionB, Lists.newArrayList(regionBFN));<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
+<span class="sourceLineNo">405</span><a name="line.405"></a>
+<span class="sourceLineNo">406</span>    fnm.updateFavoredNodes(result);<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>      // Lets get the primary and tertiary from parent for regionB<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      Set&lt;ServerName&gt; regionBFN =<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          getInheritedFNForDaughter(helper, parentFavoredNodes, PRIMARY, TERTIARY);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      result.put(regionB, Lists.newArrayList(regionBFN));<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>    fnm.updateFavoredNodes(result);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
+<span class="sourceLineNo">409</span>  private Set&lt;ServerName&gt; getInheritedFNForDaughter(FavoredNodeAssignmentHelper helper,<a name="line.409"></a>
+<span class="sourceLineNo">410</span>      List&lt;ServerName&gt; parentFavoredNodes, Position primary, Position secondary)<a name="line.410"></a>
+<span class="sourceLineNo">411</span>      throws IOException {<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span>    Set&lt;ServerName&gt; daughterFN = Sets.newLinkedHashSet();<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    if (parentFavoredNodes.size() &gt;= primary.ordinal()) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      daughterFN.add(parentFavoredNodes.get(primary.ordinal()));<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>  private Set&lt;ServerName&gt; getInheritedFNForDaughter(FavoredNodeAssignmentHelper helper,<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      List&lt;ServerName&gt; parentFavoredNodes, Position primary, Position secondary)<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      throws IOException {<a name="line.420"></a>
+<span class="sourceLineNo">418</span>    if (parentFavoredNodes.size() &gt;= secondary.ordinal()) {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      daughterFN.add(parentFavoredNodes.get(secondary.ordinal()));<a name="line.419"></a>
+<span class="sourceLineNo">420</span>    }<a name="line.420"></a>
 <span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span>    Set&lt;ServerName&gt; daughterFN = Sets.newLinkedHashSet();<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    if (parentFavoredNodes.size() &gt;= primary.ordinal()) {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      daughterFN.add(parentFavoredNodes.get(primary.ordinal()));<a name="line.424"></a>
+<span class="sourceLineNo">422</span>    while (daughterFN.size() &lt; FavoredNodeAssignmentHelper.FAVORED_NODES_NUM) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      ServerName newNode = helper.generateMissingFavoredNode(Lists.newArrayList(daughterFN));<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      daughterFN.add(newNode);<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>    if (parentFavoredNodes.size() &gt;= secondary.ordinal()) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      daughterFN.add(parentFavoredNodes.get(secondary.ordinal()));<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>    while (daughterFN.size() &lt; FavoredNodeAssignmentHelper.FAVORED_NODES_NUM) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      ServerName newNode = helper.generateMissingFavoredNode(Lists.newArrayList(daughterFN));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      daughterFN.add(newNode);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
-<span class="sourceLineNo">435</span>    return daughterFN;<a name="line.435"></a>
-<span class="sourceLineNo">436</span>  }<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>   * Generate favored nodes for a region during merge. Choose the FN from one of the sources to<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   * keep it simple.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>   */<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  @Override<a name="line.442"></a>
-<span class="sourceLineNo">443</span>  public void generateFavoredNodesForMergedRegion(RegionInfo merged, RegionInfo [] mergeParents)<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      throws IOException {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; regionFNMap = Maps.newHashMap();<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    regionFNMap.put(merged, getFavoredNodes(mergeParents[0]));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    fnm.updateFavoredNodes(regionFNMap);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  }<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">426</span>    return daughterFN;<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>   * Generate favored nodes for a region during merge. Choose the FN from one of the sources to<a name="line.430"></a>
+<span class="sourceLineNo">431</span>   * keep it simple.<a name="line.431"></a>
+<span class="sourceLineNo">432</span>   */<a name="line.432"></a>
+<span class="sourceLineNo">433</span>  @Override<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  public void generateFavoredNodesForMergedRegion(RegionInfo merged, RegionInfo [] mergeParents)<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    Map&lt;RegionInfo, List&lt;ServerName&gt;&gt; regionFNMap = Maps.newHashMap();<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    regionFNMap.put(merged, getFavoredNodes(mergeParents[0]));<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    fnm.updateFavoredNodes(regionFNMap);<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>}<a name="line.441"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
index 37b49d4..1de046c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
@@ -692,3110 +692,3109 @@
 <span class="sourceLineNo">684</span>        LoadBalancer.class);<a name="line.684"></a>
 <span class="sourceLineNo">685</span>    }<a name="line.685"></a>
 <span class="sourceLineNo">686</span>    this.balancer = new RSGroupBasedLoadBalancer();<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    this.balancer.setConf(conf);<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    this.loadBalancerTracker.start();<a name="line.689"></a>
-<span class="sourceLineNo">690</span><a name="line.690"></a>
-<span class="sourceLineNo">691</span>    this.regionNormalizerManager =<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      RegionNormalizerFactory.createNormalizerManager(conf, zooKeeper, this);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    this.configurationManager.registerObserver(regionNormalizerManager);<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    this.regionNormalizerManager.start();<a name="line.694"></a>
-<span class="sourceLineNo">695</span><a name="line.695"></a>
-<span class="sourceLineNo">696</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    this.splitOrMergeTracker.start();<a name="line.697"></a>
-<span class="sourceLineNo">698</span><a name="line.698"></a>
-<span class="sourceLineNo">699</span>    // This is for backwards compatible. We do not need the CP for rs group now but if user want to<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    // load it, we need to enable rs group.<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    String[] cpClasses = conf.getStrings(MasterCoprocessorHost.MASTER_COPROCESSOR_CONF_KEY);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    if (cpClasses != null) {<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      for (String cpClass : cpClasses) {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>        if (RSGroupAdminEndpoint.class.getName().equals(cpClass)) {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>          RSGroupUtil.enableRSGroup(conf);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>          break;<a name="line.706"></a>
-<span class="sourceLineNo">707</span>        }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      }<a name="line.708"></a>
-<span class="sourceLineNo">709</span>    }<a name="line.709"></a>
-<span class="sourceLineNo">710</span>    this.rsGroupInfoManager = RSGroupInfoManager.create(this);<a name="line.710"></a>
-<span class="sourceLineNo">711</span><a name="line.711"></a>
-<span class="sourceLineNo">712</span>    this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, conf, clusterId);<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    this.drainingServerTracker.start();<a name="line.715"></a>
-<span class="sourceLineNo">716</span><a name="line.716"></a>
-<span class="sourceLineNo">717</span>    this.snapshotCleanupTracker = new SnapshotCleanupTracker(zooKeeper, this);<a name="line.717"></a>
-<span class="sourceLineNo">718</span>    this.snapshotCleanupTracker.start();<a name="line.718"></a>
-<span class="sourceLineNo">719</span><a name="line.719"></a>
-<span class="sourceLineNo">720</span>    String clientQuorumServers = conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.720"></a>
-<span class="sourceLineNo">721</span>    boolean clientZkObserverMode = conf.getBoolean(HConstants.CLIENT_ZOOKEEPER_OBSERVER_MODE,<a name="line.721"></a>
-<span class="sourceLineNo">722</span>      HConstants.DEFAULT_CLIENT_ZOOKEEPER_OBSERVER_MODE);<a name="line.722"></a>
-<span class="sourceLineNo">723</span>    if (clientQuorumServers != null &amp;&amp; !clientZkObserverMode) {<a name="line.723"></a>
-<span class="sourceLineNo">724</span>      // we need to take care of the ZK information synchronization<a name="line.724"></a>
-<span class="sourceLineNo">725</span>      // if given client ZK are not observer nodes<a name="line.725"></a>
-<span class="sourceLineNo">726</span>      ZKWatcher clientZkWatcher = new ZKWatcher(conf,<a name="line.726"></a>
-<span class="sourceLineNo">727</span>          getProcessName() + ":" + rpcServices.getSocketAddress().getPort() + "-clientZK", this,<a name="line.727"></a>
-<span class="sourceLineNo">728</span>          false, true);<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      this.metaLocationSyncer = new MetaLocationSyncer(zooKeeper, clientZkWatcher, this);<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      this.metaLocationSyncer.start();<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      this.masterAddressSyncer = new MasterAddressSyncer(zooKeeper, clientZkWatcher, this);<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      this.masterAddressSyncer.start();<a name="line.732"></a>
-<span class="sourceLineNo">733</span>      // set cluster id is a one-go effort<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      ZKClusterId.setClusterId(clientZkWatcher, fileSystemManager.getClusterId());<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    }<a name="line.735"></a>
-<span class="sourceLineNo">736</span><a name="line.736"></a>
-<span class="sourceLineNo">737</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    // going ahead with their startup.<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>    LOG.info("Active/primary master=" + this.serverName +<a name="line.742"></a>
-<span class="sourceLineNo">743</span>        ", sessionid=0x" +<a name="line.743"></a>
-<span class="sourceLineNo">744</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.744"></a>
-<span class="sourceLineNo">745</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.745"></a>
-<span class="sourceLineNo">746</span><a name="line.746"></a>
-<span class="sourceLineNo">747</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    this.snapshotManager = new SnapshotManager();<a name="line.748"></a>
-<span class="sourceLineNo">749</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.749"></a>
-<span class="sourceLineNo">750</span>    this.mpmHost.register(this.snapshotManager);<a name="line.750"></a>
-<span class="sourceLineNo">751</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    this.mpmHost.loadProcedures(conf);<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.753"></a>
-<span class="sourceLineNo">754</span>  }<a name="line.754"></a>
-<span class="sourceLineNo">755</span><a name="line.755"></a>
-<span class="sourceLineNo">756</span>  // Will be overriden in test to inject customized AssignmentManager<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  @InterfaceAudience.Private<a name="line.757"></a>
-<span class="sourceLineNo">758</span>  protected AssignmentManager createAssignmentManager(MasterServices master) {<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    return new AssignmentManager(master);<a name="line.759"></a>
-<span class="sourceLineNo">760</span>  }<a name="line.760"></a>
-<span class="sourceLineNo">761</span><a name="line.761"></a>
-<span class="sourceLineNo">762</span>  /**<a name="line.762"></a>
-<span class="sourceLineNo">763</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.763"></a>
-<span class="sourceLineNo">764</span>   * &lt;p/&gt;<a name="line.764"></a>
-<span class="sourceLineNo">765</span>   * The startup order is a bit complicated but very important, do not change it unless you know<a name="line.765"></a>
-<span class="sourceLineNo">766</span>   * what you are doing.<a name="line.766"></a>
-<span class="sourceLineNo">767</span>   * &lt;ol&gt;<a name="line.767"></a>
-<span class="sourceLineNo">768</span>   * &lt;li&gt;Initialize file system based components - file system manager, wal manager, table<a name="line.768"></a>
-<span class="sourceLineNo">769</span>   * descriptors, etc&lt;/li&gt;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * &lt;li&gt;Publish cluster id&lt;/li&gt;<a name="line.770"></a>
-<span class="sourceLineNo">771</span>   * &lt;li&gt;Here comes the most complicated part - initialize server manager, assignment manager and<a name="line.771"></a>
-<span class="sourceLineNo">772</span>   * region server tracker<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   * &lt;ol type='i'&gt;<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * &lt;li&gt;Create server manager&lt;/li&gt;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * &lt;li&gt;Create procedure executor, load the procedures, but do not start workers. We will start it<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * later after we finish scheduling SCPs to avoid scheduling duplicated SCPs for the same<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   * server&lt;/li&gt;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>   * &lt;li&gt;Create assignment manager and start it, load the meta region state, but do not load data<a name="line.778"></a>
-<span class="sourceLineNo">779</span>   * from meta region&lt;/li&gt;<a name="line.779"></a>
-<span class="sourceLineNo">780</span>   * &lt;li&gt;Start region server tracker, construct the online servers set and find out dead servers and<a name="line.780"></a>
-<span class="sourceLineNo">781</span>   * schedule SCP for them. The online servers will be constructed by scanning zk, and we will also<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * scan the wal directory to find out possible live region servers, and the differences between<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   * these two sets are the dead servers&lt;/li&gt;<a name="line.783"></a>
-<span class="sourceLineNo">784</span>   * &lt;/ol&gt;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>   * &lt;/li&gt;<a name="line.785"></a>
-<span class="sourceLineNo">786</span>   * &lt;li&gt;If this is a new deploy, schedule a InitMetaProcedure to initialize meta&lt;/li&gt;<a name="line.786"></a>
-<span class="sourceLineNo">787</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janitor, executor services, and also<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   * the procedure executor, etc. Notice that the balancer must be created first as assignment<a name="line.788"></a>
-<span class="sourceLineNo">789</span>   * manager may use it when assigning regions.&lt;/li&gt;<a name="line.789"></a>
-<span class="sourceLineNo">790</span>   * &lt;li&gt;Wait for meta to be initialized if necessary, start table state manager.&lt;/li&gt;<a name="line.790"></a>
-<span class="sourceLineNo">791</span>   * &lt;li&gt;Wait for enough region servers to check-in&lt;/li&gt;<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * &lt;li&gt;Let assignment manager load data from meta and construct region states&lt;/li&gt;<a name="line.792"></a>
-<span class="sourceLineNo">793</span>   * &lt;li&gt;Start all other things such as chore services, etc&lt;/li&gt;<a name="line.793"></a>
-<span class="sourceLineNo">794</span>   * &lt;/ol&gt;<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * &lt;p/&gt;<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   * Notice that now we will not schedule a special procedure to make meta online(unless the first<a name="line.796"></a>
-<span class="sourceLineNo">797</span>   * time where meta has not been created yet), we will rely on SCP to bring meta online.<a name="line.797"></a>
-<span class="sourceLineNo">798</span>   */<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  private void finishActiveMasterInitialization(MonitoredTask status) throws IOException,<a name="line.799"></a>
-<span class="sourceLineNo">800</span>          InterruptedException, KeeperException, ReplicationException {<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    /*<a name="line.801"></a>
-<span class="sourceLineNo">802</span>     * We are active master now... go initialize components we need to run.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>     */<a name="line.803"></a>
-<span class="sourceLineNo">804</span>    status.setStatus("Initializing Master file system");<a name="line.804"></a>
-<span class="sourceLineNo">805</span><a name="line.805"></a>
-<span class="sourceLineNo">806</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.806"></a>
-<span class="sourceLineNo">807</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.807"></a>
-<span class="sourceLineNo">808</span><a name="line.808"></a>
-<span class="sourceLineNo">809</span>    // always initialize the MemStoreLAB as we use a region to store data in master now, see<a name="line.809"></a>
-<span class="sourceLineNo">810</span>    // localStore.<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    initializeMemStoreChunkCreator();<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    this.fileSystemManager = new MasterFileSystem(conf);<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    this.walManager = new MasterWalManager(this);<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>    // warm-up HTDs cache on master initialization<a name="line.815"></a>
-<span class="sourceLineNo">816</span>    if (preLoadTableDescriptors) {<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      status.setStatus("Pre-loading table descriptors");<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      this.tableDescriptors.getAll();<a name="line.818"></a>
-<span class="sourceLineNo">819</span>    }<a name="line.819"></a>
-<span class="sourceLineNo">820</span><a name="line.820"></a>
-<span class="sourceLineNo">821</span>    // Publish cluster ID; set it in Master too. The superclass RegionServer does this later but<a name="line.821"></a>
-<span class="sourceLineNo">822</span>    // only after it has checked in with the Master. At least a few tests ask Master for clusterId<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    // before it has called its run method and before RegionServer has done the reportForDuty.<a name="line.823"></a>
-<span class="sourceLineNo">824</span>    ClusterId clusterId = fileSystemManager.getClusterId();<a name="line.824"></a>
-<span class="sourceLineNo">825</span>    status.setStatus("Publishing Cluster ID " + clusterId + " in ZooKeeper");<a name="line.825"></a>
-<span class="sourceLineNo">826</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.826"></a>
-<span class="sourceLineNo">827</span>    this.clusterId = clusterId.toString();<a name="line.827"></a>
-<span class="sourceLineNo">828</span><a name="line.828"></a>
-<span class="sourceLineNo">829</span>    // Precaution. Put in place the old hbck1 lock file to fence out old hbase1s running their<a name="line.829"></a>
-<span class="sourceLineNo">830</span>    // hbck1s against an hbase2 cluster; it could do damage. To skip this behavior, set<a name="line.830"></a>
-<span class="sourceLineNo">831</span>    // hbase.write.hbck1.lock.file to false.<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    if (this.conf.getBoolean("hbase.write.hbck1.lock.file", true)) {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      Pair&lt;Path, FSDataOutputStream&gt; result = null;<a name="line.833"></a>
-<span class="sourceLineNo">834</span>      try {<a name="line.834"></a>
-<span class="sourceLineNo">835</span>        result = HBaseFsck.checkAndMarkRunningHbck(this.conf,<a name="line.835"></a>
-<span class="sourceLineNo">836</span>            HBaseFsck.createLockRetryCounterFactory(this.conf).create());<a name="line.836"></a>
-<span class="sourceLineNo">837</span>      } finally {<a name="line.837"></a>
-<span class="sourceLineNo">838</span>        if (result != null) {<a name="line.838"></a>
-<span class="sourceLineNo">839</span>          Closeables.close(result.getSecond(), true);<a name="line.839"></a>
-<span class="sourceLineNo">840</span>        }<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      }<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    }<a name="line.842"></a>
-<span class="sourceLineNo">843</span><a name="line.843"></a>
-<span class="sourceLineNo">844</span>    status.setStatus("Initialize ServerManager and schedule SCP for crash servers");<a name="line.844"></a>
-<span class="sourceLineNo">845</span>    // The below two managers must be created before loading procedures, as they will be used during<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    // loading.<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    this.serverManager = createServerManager(this);<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    this.syncReplicationReplayWALManager = new SyncReplicationReplayWALManager(this);<a name="line.848"></a>
-<span class="sourceLineNo">849</span>    if (!conf.getBoolean(HBASE_SPLIT_WAL_COORDINATED_BY_ZK,<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      DEFAULT_HBASE_SPLIT_COORDINATED_BY_ZK)) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>      this.splitWALManager = new SplitWALManager(this);<a name="line.851"></a>
-<span class="sourceLineNo">852</span>    }<a name="line.852"></a>
-<span class="sourceLineNo">853</span><a name="line.853"></a>
-<span class="sourceLineNo">854</span>    // initialize master local region<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    masterRegion = MasterRegionFactory.create(this);<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    createProcedureExecutor();<a name="line.856"></a>
-<span class="sourceLineNo">857</span>    Map&lt;Class&lt;?&gt;, List&lt;Procedure&lt;MasterProcedureEnv&gt;&gt;&gt; procsByType =<a name="line.857"></a>
-<span class="sourceLineNo">858</span>      procedureExecutor.getActiveProceduresNoCopy().stream()<a name="line.858"></a>
-<span class="sourceLineNo">859</span>        .collect(Collectors.groupingBy(p -&gt; p.getClass()));<a name="line.859"></a>
-<span class="sourceLineNo">860</span><a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // Create Assignment Manager<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    this.assignmentManager = createAssignmentManager(this);<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    this.assignmentManager.start();<a name="line.863"></a>
-<span class="sourceLineNo">864</span>    // TODO: TRSP can perform as the sub procedure for other procedures, so even if it is marked as<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // completed, it could still be in the procedure list. This is a bit strange but is another<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // story, need to verify the implementation for ProcedureExecutor and ProcedureStore.<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    List&lt;TransitRegionStateProcedure&gt; ritList =<a name="line.867"></a>
-<span class="sourceLineNo">868</span>      procsByType.getOrDefault(TransitRegionStateProcedure.class, Collections.emptyList()).stream()<a name="line.868"></a>
-<span class="sourceLineNo">869</span>        .filter(p -&gt; !p.isFinished()).map(p -&gt; (TransitRegionStateProcedure) p)<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        .collect(Collectors.toList());<a name="line.870"></a>
-<span class="sourceLineNo">871</span>    this.assignmentManager.setupRIT(ritList);<a name="line.871"></a>
-<span class="sourceLineNo">872</span><a name="line.872"></a>
-<span class="sourceLineNo">873</span>    // Start RegionServerTracker with listing of servers found with exiting SCPs -- these should<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    // be registered in the deadServers set -- and with the list of servernames out on the<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    // filesystem that COULD BE 'alive' (we'll schedule SCPs for each and let SCP figure it out).<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    // We also pass dirs that are already 'splitting'... so we can do some checks down in tracker.<a name="line.876"></a>
-<span class="sourceLineNo">877</span>    // TODO: Generate the splitting and live Set in one pass instead of two as we currently do.<a name="line.877"></a>
-<span class="sourceLineNo">878</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.878"></a>
-<span class="sourceLineNo">879</span>    this.regionServerTracker.start(<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      procsByType.getOrDefault(ServerCrashProcedure.class, Collections.emptyList()).stream()<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        .map(p -&gt; (ServerCrashProcedure) p).map(p -&gt; p.getServerName()).collect(Collectors.toSet()),<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      walManager.getLiveServersFromWALDir(), walManager.getSplittingServersFromWALDir());<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    // This manager must be accessed AFTER hbase:meta is confirmed on line..<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    this.tableStateManager = new TableStateManager(this);<a name="line.884"></a>
-<span class="sourceLineNo">885</span><a name="line.885"></a>
-<span class="sourceLineNo">886</span>    status.setStatus("Initializing ZK system trackers");<a name="line.886"></a>
-<span class="sourceLineNo">887</span>    initializeZKBasedSystemTrackers();<a name="line.887"></a>
-<span class="sourceLineNo">888</span>    status.setStatus("Loading last flushed sequence id of regions");<a name="line.888"></a>
-<span class="sourceLineNo">889</span>    try {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>      this.serverManager.loadLastFlushedSequenceIds();<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    } catch (IOException e) {<a name="line.891"></a>
-<span class="sourceLineNo">892</span>      LOG.info("Failed to load last flushed sequence id of regions"<a name="line.892"></a>
-<span class="sourceLineNo">893</span>          + " from file system", e);<a name="line.893"></a>
-<span class="sourceLineNo">894</span>    }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    // Set ourselves as active Master now our claim has succeeded up in zk.<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    this.activeMaster = true;<a name="line.896"></a>
-<span class="sourceLineNo">897</span><a name="line.897"></a>
-<span class="sourceLineNo">898</span>    // Start the Zombie master detector after setting master as active, see HBASE-21535<a name="line.898"></a>
-<span class="sourceLineNo">899</span>    Thread zombieDetector = new Thread(new MasterInitializationMonitor(this),<a name="line.899"></a>
-<span class="sourceLineNo">900</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.900"></a>
-<span class="sourceLineNo">901</span>    zombieDetector.setDaemon(true);<a name="line.901"></a>
-<span class="sourceLineNo">902</span>    zombieDetector.start();<a name="line.902"></a>
-<span class="sourceLineNo">903</span><a name="line.903"></a>
-<span class="sourceLineNo">904</span>    if (!maintenanceMode) {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>      // Add the Observer to delete quotas on table deletion before starting all CPs by<a name="line.905"></a>
-<span class="sourceLineNo">906</span>      // default with quota support, avoiding if user specifically asks to not load this Observer.<a name="line.906"></a>
-<span class="sourceLineNo">907</span>      if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.907"></a>
-<span class="sourceLineNo">908</span>        updateConfigurationForQuotasObserver(conf);<a name="line.908"></a>
-<span class="sourceLineNo">909</span>      }<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      // initialize master side coprocessors before we start handling requests<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      status.setStatus("Initializing master coprocessors");<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      this.cpHost = new MasterCoprocessorHost(this, this.conf);<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>    // Checking if meta needs initializing.<a name="line.915"></a>
-<span class="sourceLineNo">916</span>    status.setStatus("Initializing meta table if this is a new deploy");<a name="line.916"></a>
-<span class="sourceLineNo">917</span>    InitMetaProcedure initMetaProc = null;<a name="line.917"></a>
-<span class="sourceLineNo">918</span>    // Print out state of hbase:meta on startup; helps debugging.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>    if (!this.assignmentManager.getRegionStates().hasTableRegionStates(TableName.META_TABLE_NAME)) {<a name="line.919"></a>
-<span class="sourceLineNo">920</span>      Optional&lt;InitMetaProcedure&gt; optProc = procedureExecutor.getProcedures().stream()<a name="line.920"></a>
-<span class="sourceLineNo">921</span>        .filter(p -&gt; p instanceof InitMetaProcedure).map(o -&gt; (InitMetaProcedure) o).findAny();<a name="line.921"></a>
-<span class="sourceLineNo">922</span>      initMetaProc = optProc.orElseGet(() -&gt; {<a name="line.922"></a>
-<span class="sourceLineNo">923</span>        // schedule an init meta procedure if meta has not been deployed yet<a name="line.923"></a>
-<span class="sourceLineNo">924</span>        InitMetaProcedure temp = new InitMetaProcedure();<a name="line.924"></a>
-<span class="sourceLineNo">925</span>        procedureExecutor.submitProcedure(temp);<a name="line.925"></a>
-<span class="sourceLineNo">926</span>        return temp;<a name="line.926"></a>
-<span class="sourceLineNo">927</span>      });<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    }<a name="line.928"></a>
-<span class="sourceLineNo">929</span><a name="line.929"></a>
-<span class="sourceLineNo">930</span>    // initialize load balancer<a name="line.930"></a>
-<span class="sourceLineNo">931</span>    this.balancer.setMasterServices(this);<a name="line.931"></a>
-<span class="sourceLineNo">932</span>    this.balancer.setClusterMetrics(getClusterMetricsWithoutCoprocessor());<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    this.balancer.initialize();<a name="line.933"></a>
-<span class="sourceLineNo">934</span><a name="line.934"></a>
-<span class="sourceLineNo">935</span>    // start up all service threads.<a name="line.935"></a>
-<span class="sourceLineNo">936</span>    status.setStatus("Initializing master service threads");<a name="line.936"></a>
-<span class="sourceLineNo">937</span>    startServiceThreads();<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    // wait meta to be initialized after we start procedure executor<a name="line.938"></a>
-<span class="sourceLineNo">939</span>    if (initMetaProc != null) {<a name="line.939"></a>
-<span class="sourceLineNo">940</span>      initMetaProc.await();<a name="line.940"></a>
-<span class="sourceLineNo">941</span>    }<a name="line.941"></a>
-<span class="sourceLineNo">942</span>    // Wake up this server to check in<a name="line.942"></a>
-<span class="sourceLineNo">943</span>    sleeper.skipSleepCycle();<a name="line.943"></a>
-<span class="sourceLineNo">944</span><a name="line.944"></a>
-<span class="sourceLineNo">945</span>    // Wait for region servers to report in.<a name="line.945"></a>
-<span class="sourceLineNo">946</span>    // With this as part of master initialization, it precludes our being able to start a single<a name="line.946"></a>
-<span class="sourceLineNo">947</span>    // server that is both Master and RegionServer. Needs more thought. TODO.<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    String statusStr = "Wait for region servers to report in";<a name="line.948"></a>
-<span class="sourceLineNo">949</span>    status.setStatus(statusStr);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>    LOG.info(Objects.toString(status));<a name="line.950"></a>
-<span class="sourceLineNo">951</span>    waitForRegionServers(status);<a name="line.951"></a>
-<span class="sourceLineNo">952</span><a name="line.952"></a>
-<span class="sourceLineNo">953</span>    // Check if master is shutting down because issue initializing regionservers or balancer.<a name="line.953"></a>
-<span class="sourceLineNo">954</span>    if (isStopped()) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      return;<a name="line.955"></a>
-<span class="sourceLineNo">956</span>    }<a name="line.956"></a>
-<span class="sourceLineNo">957</span><a name="line.957"></a>
-<span class="sourceLineNo">958</span>    status.setStatus("Starting assignment manager");<a name="line.958"></a>
-<span class="sourceLineNo">959</span>    // FIRST HBASE:META READ!!!!<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    // The below cannot make progress w/o hbase:meta being online.<a name="line.960"></a>
-<span class="sourceLineNo">961</span>    // This is the FIRST attempt at going to hbase:meta. Meta on-lining is going on in background<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    // as procedures run -- in particular SCPs for crashed servers... One should put up hbase:meta<a name="line.962"></a>
-<span class="sourceLineNo">963</span>    // if it is down. It may take a while to come online. So, wait here until meta if for sure<a name="line.963"></a>
-<span class="sourceLineNo">964</span>    // available. That's what waitForMetaOnline does.<a name="line.964"></a>
-<span class="sourceLineNo">965</span>    if (!waitForMetaOnline()) {<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      return;<a name="line.966"></a>
-<span class="sourceLineNo">967</span>    }<a name="line.967"></a>
-<span class="sourceLineNo">968</span>    this.assignmentManager.joinCluster();<a name="line.968"></a>
-<span class="sourceLineNo">969</span>    // The below depends on hbase:meta being online.<a name="line.969"></a>
-<span class="sourceLineNo">970</span>    this.assignmentManager.processOfflineRegions();<a name="line.970"></a>
-<span class="sourceLineNo">971</span>    // this must be called after the above processOfflineRegions to prevent race<a name="line.971"></a>
-<span class="sourceLineNo">972</span>    this.assignmentManager.wakeMetaLoadedEvent();<a name="line.972"></a>
-<span class="sourceLineNo">973</span><a name="line.973"></a>
-<span class="sourceLineNo">974</span>    // for migrating from a version without HBASE-25099, and also for honoring the configuration<a name="line.974"></a>
-<span class="sourceLineNo">975</span>    // first.<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    if (conf.get(HConstants.META_REPLICAS_NUM) != null) {<a name="line.976"></a>
-<span class="sourceLineNo">977</span>      int replicasNumInConf =<a name="line.977"></a>
-<span class="sourceLineNo">978</span>        conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM);<a name="line.978"></a>
-<span class="sourceLineNo">979</span>      TableDescriptor metaDesc = tableDescriptors.get(TableName.META_TABLE_NAME);<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      if (metaDesc.getRegionReplication() != replicasNumInConf) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>        // it is possible that we already have some replicas before upgrading, so we must set the<a name="line.981"></a>
-<span class="sourceLineNo">982</span>        // region replication number in meta TableDescriptor directly first, without creating a<a name="line.982"></a>
-<span class="sourceLineNo">983</span>        // ModifyTableProcedure, otherwise it may cause a double assign for the meta replicas.<a name="line.983"></a>
-<span class="sourceLineNo">984</span>        int existingReplicasCount =<a name="line.984"></a>
-<span class="sourceLineNo">985</span>          assignmentManager.getRegionStates().getRegionsOfTable(TableName.META_TABLE_NAME).size();<a name="line.985"></a>
-<span class="sourceLineNo">986</span>        if (existingReplicasCount &gt; metaDesc.getRegionReplication()) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>          LOG.info("Update replica count of hbase:meta from {}(in TableDescriptor)" +<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            " to {}(existing ZNodes)", metaDesc.getRegionReplication(), existingReplicasCount);<a name="line.988"></a>
-<span class="sourceLineNo">989</span>          metaDesc = TableDescriptorBuilder.newBuilder(metaDesc)<a name="line.989"></a>
-<span class="sourceLineNo">990</span>            .setRegionReplication(existingReplicasCount).build();<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          tableDescriptors.update(metaDesc);<a name="line.991"></a>
-<span class="sourceLineNo">992</span>        }<a name="line.992"></a>
-<span class="sourceLineNo">993</span>        // check again, and issue a ModifyTableProcedure if needed<a name="line.993"></a>
-<span class="sourceLineNo">994</span>        if (metaDesc.getRegionReplication() != replicasNumInConf) {<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          LOG.info(<a name="line.995"></a>
-<span class="sourceLineNo">996</span>            "The {} config is {} while the replica count in TableDescriptor is {}" +<a name="line.996"></a>
-<span class="sourceLineNo">997</span>              " for hbase:meta, altering...",<a name="line.997"></a>
-<span class="sourceLineNo">998</span>            HConstants.META_REPLICAS_NUM, replicasNumInConf, metaDesc.getRegionReplication());<a name="line.998"></a>
-<span class="sourceLineNo">999</span>          procedureExecutor.submitProcedure(new ModifyTableProcedure(<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>            procedureExecutor.getEnvironment(), TableDescriptorBuilder.newBuilder(metaDesc)<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>              .setRegionReplication(replicasNumInConf).build(),<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>            null, metaDesc, false));<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>        }<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>    // Initialize after meta is up as below scans meta<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>    if (getFavoredNodesManager() != null &amp;&amp; !maintenanceMode) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>      SnapshotOfRegionAssignmentFromMeta snapshotOfRegionAssignment =<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>          new SnapshotOfRegionAssignmentFromMeta(getConnection());<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      snapshotOfRegionAssignment.initialize();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>      getFavoredNodesManager().initialize(snapshotOfRegionAssignment);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>    }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span><a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>    // set cluster status again after user regions are assigned<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    this.balancer.setClusterMetrics(getClusterMetricsWithoutCoprocessor());<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span><a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>    // Start balancer and meta catalog janitor after meta and regions have been assigned.<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>    status.setStatus("Starting balancer and catalog janitor");<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    this.clusterStatusChore = new ClusterStatusChore(this, balancer);<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>    getChoreService().scheduleChore(clusterStatusChore);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    this.balancerChore = new BalancerChore(this);<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>    getChoreService().scheduleChore(balancerChore);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>    if (regionNormalizerManager != null) {<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>      getChoreService().scheduleChore(regionNormalizerManager.getRegionNormalizerChore());<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    }<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>    this.catalogJanitorChore = new CatalogJanitor(this);<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>    getChoreService().scheduleChore(catalogJanitorChore);<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    this.hbckChore = new HbckChore(this);<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>    getChoreService().scheduleChore(hbckChore);<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    this.serverManager.startChore();<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span><a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>    // Only for rolling upgrade, where we need to migrate the data in namespace table to meta table.<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>    if (!waitForNamespaceOnline()) {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>      return;<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>    }<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>    status.setStatus("Starting cluster schema service");<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>    initClusterSchemaService();<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span><a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    if (this.cpHost != null) {<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>      try {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        this.cpHost.preMasterInitialization();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>      } catch (IOException e) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>        LOG.error("Coprocessor preMasterInitialization() hook failed", e);<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>      }<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>    status.markComplete("Initialization successful");<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>    LOG.info(String.format("Master has completed initialization %.3fsec",<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>       (System.currentTimeMillis() - masterActiveTime) / 1000.0f));<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>    this.masterFinishedInitializationTime = System.currentTimeMillis();<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>    configurationManager.registerObserver(this.balancer);<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>    configurationManager.registerObserver(this.cleanerPool);<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>    configurationManager.registerObserver(this.hfileCleaner);<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>    configurationManager.registerObserver(this.logCleaner);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>    configurationManager.registerObserver(this.regionsRecoveryConfigManager);<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>    // Set master as 'initialized'.<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span>    setInitialized(true);<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span><a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>    if (maintenanceMode) {<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>      LOG.info("Detected repair mode, skipping final initialization steps.");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>      return;<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span>    }<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span><a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>    assignmentManager.checkIfShouldMoveSystemRegionAsync();<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>    status.setStatus("Starting quota manager");<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>    initQuotaManager();<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span>      // Create the quota snapshot notifier<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>      spaceQuotaSnapshotNotifier = createQuotaSnapshotNotifier();<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>      spaceQuotaSnapshotNotifier.initialize(getConnection());<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>      this.quotaObserverChore = new QuotaObserverChore(this, getMasterMetrics());<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      // Start the chore to read the region FS space reports and act on them<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      getChoreService().scheduleChore(quotaObserverChore);<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span><a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>      this.snapshotQuotaChore = new SnapshotQuotaObserverChore(this, getMasterMetrics());<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      // Start the chore to read snapshots and add their usage to table/NS quotas<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      getChoreService().scheduleChore(snapshotQuotaChore);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>    }<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    final SlowLogMasterService slowLogMasterService = new SlowLogMasterService(conf, this);<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>    slowLogMasterService.init();<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span><a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>    // master initialization. See HBASE-5916.<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span><a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>    status.setStatus("Checking ZNode ACLs");<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span><a name="line.1090"></a>
-<span class="sourceLineNo">1091</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>    initMobCleaner();<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span><a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    if (this.cpHost != null) {<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      // don't let cp initialization errors kill the master<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>      try {<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>        this.cpHost.postStartMaster();<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>      } catch (IOException ioe) {<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>      }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>    }<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span><a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>    zombieDetector.interrupt();<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span><a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    /*<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>     * After master has started up, lets do balancer post startup initialization. Since this runs<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span>     * in activeMasterManager thread, it should be fine.<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span>     */<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span>    long start = System.currentTimeMillis();<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span>    this.balancer.postMasterStartupInitialize();<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span>    if (LOG.isDebugEnabled()) {<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span>      LOG.debug("Balancer post startup initialization complete, took " + (<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span>          (System.currentTimeMillis() - start) / 1000) + " seconds");<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span>    }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span>  }<a name="line.1116"></a>
-<span class="sourceLineNo">1117</span><a name="line.1117"></a>
-<span class="sourceLineNo">1118</span>  /**<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span>   * Check hbase:meta is up and ready for reading. For use during Master startup only.<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span>   * @return True if meta is UP and online and startup can progress. Otherwise, meta is not online<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span>   *   and we will hold here until operator intervention.<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span>   */<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span>  @InterfaceAudience.Private<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span>  public boolean waitForMetaOnline() {<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span>    return isRegionOnline(RegionInfoBuilder.FIRST_META_REGIONINFO);<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>  /**<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span>   * @return True if region is online and scannable else false if an error or shutdown (Otherwise<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span>   *   we just block in here holding up all forward-progess).<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span>   */<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span>  private boolean isRegionOnline(RegionInfo ri) {<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span>    RetryCounter rc = null;<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span>    while (!isStopped()) {<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span>      RegionState rs = this.assignmentManager.getRegionStates().getRegionState(ri);<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span>      if (rs.isOpened()) {<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span>        if (this.getServerManager().isServerOnline(rs.getServerName())) {<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span>          return true;<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span>        }<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span>      }<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span>      // Region is not OPEN.<a name="line.1141"></a>
-<span class="sourceLineNo">1142</span>      Optional&lt;Procedure&lt;MasterProcedureEnv&gt;&gt; optProc = this.procedureExecutor.getProcedures().<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span>          stream().filter(p -&gt; p instanceof ServerCrashProcedure).findAny();<a name="line.1143"></a>
-<span class="sourceLineNo">1144</span>      // TODO: Add a page to refguide on how to do repair. Have this log message point to it.<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span>      // Page will talk about loss of edits, how to schedule at least the meta WAL recovery, and<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span>      // then how to assign including how to break region lock if one held.<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span>      LOG.warn("{} is NOT online; state={}; ServerCrashProcedures={}. Master startup cannot " +<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span>          "progress, in holding-pattern until region onlined.",<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span>          ri.getRegionNameAsString(), rs, optProc.isPresent());<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span>      // Check once-a-minute.<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span>      if (rc == null) {<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span>        rc = new RetryCounterFactory(Integer.MAX_VALUE, 1000, 60_000).create();<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span>      }<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span>      Threads.sleep(rc.getBackoffTimeAndIncrementAttempts());<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span>    }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span>    return false;<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span>  }<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>   * Check hbase:namespace table is assigned. If not, startup will hang looking for the ns table<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span>   * &lt;p/&gt;<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span>   * This is for rolling upgrading, later we will migrate the data in ns table to the ns family of<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span>   * meta table. And if this is a new cluster, this method will return immediately as there will be<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span>   * no namespace table/region.<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span>   * @return True if namespace table is up/online.<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span>   */<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span>  private boolean waitForNamespaceOnline() throws IOException {<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span>    TableState nsTableState =<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span>      MetaTableAccessor.getTableState(getConnection(), TableName.NAMESPACE_TABLE_NAME);<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span>    if (nsTableState == null || nsTableState.isDisabled()) {<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span>      // this means we have already migrated the data and disabled or deleted the namespace table,<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span>      // or this is a new deploy which does not have a namespace table from the beginning.<a name="line.1172"></a>
-<span class="sourceLineNo">1173</span>      return true;<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span>    }<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span>    List&lt;RegionInfo&gt; ris =<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span>      this.assignmentManager.getRegionStates().getRegionsOfTable(TableName.NAMESPACE_TABLE_NAME);<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span>    if (ris.isEmpty()) {<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span>      // maybe this will not happen any more, but anyway, no harm to add a check here...<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span>      return true;<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span>    }<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span>    // Else there are namespace regions up in meta. Ensure they are assigned before we go on.<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span>    for (RegionInfo ri : ris) {<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span>      if (!isRegionOnline(ri)) {<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span>        return false;<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span>      }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span>    }<a name="line.1186"></a>
-<span class="sourceLineNo">1187</span>    return true;<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span>  }<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span><a name="line.1189"></a>
-<span class="sourceLineNo">1190</span>  /**<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span>   * Adds the {@code MasterQuotasObserver} to the list of configured Master observers to<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span>   * automatically remove quotas for a table when that table is deleted.<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span>   */<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span>  @InterfaceAudience.Private<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span>  public void updateConfigurationForQuotasObserver(Configuration conf) {<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span>    // We're configured to not delete quotas on table deletion, so we don't need to add the obs.<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span>    if (!conf.getBoolean(<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span>          MasterQuotasObserver.REMOVE_QUOTA_ON_TABLE_DELETE,<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span>          MasterQuotasObserver.REMOVE_QUOTA_ON_TABLE_DELETE_DEFAULT)) {<a name="line.1199"></a>
-<span class="sourceLineNo">1200</span>      return;<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span>    }<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span>    String[] masterCoprocs = conf.getStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY);<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span>    final int length = null == masterCoprocs ? 0 : masterCoprocs.length;<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span>    String[] updatedCoprocs = new String[length + 1];<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span>    if (length &gt; 0) {<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span>      System.arraycopy(masterCoprocs, 0, updatedCoprocs, 0, masterCoprocs.length);<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span>    }<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span>    updatedCoprocs[length] = MasterQuotasObserver.class.getName();<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span>    conf.setStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, updatedCoprocs);<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span>  }<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span><a name="line.1211"></a>
-<span class="sourceLineNo">1212</span>  private void initMobCleaner() {<a name="line.1212"></a>
-<span class="sourceLineNo">1213</span>    this.mobFileCleanerChore = new MobFileCleanerChore(this);<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span>    getChoreService().scheduleChore(mobFileCleanerChore);<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span>    this.mobFileCompactionChore = new MobFileCompactionChore(this);<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span>    getChoreService().scheduleChore(mobFileCompactionChore);<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span>  }<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>   * &lt;p&gt;<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span>   * Create a {@link ServerManager} instance.<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span>   * &lt;/p&gt;<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span>   * &lt;p&gt;<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span>   * Will be overridden in tests.<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span>   * &lt;/p&gt;<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span>   */<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span>  @InterfaceAudience.Private<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span>  protected ServerManager createServerManager(final MasterServices master) throws IOException {<a name="line.1228"></a>
-<span class="sourceLineNo">1229</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span>    // w/ a mocked up ServerManager.<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span>    setupClusterConnection();<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span>    return new ServerManager(master);<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span>  }<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span><a name="line.1234"></a>
-<span class="sourceLineNo">1235</span>  private void waitForRegionServers(final MonitoredTask status)<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span>      throws IOException, InterruptedException {<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span>    this.serverManager.waitForRegionServers(status);<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span>  }<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span><a name="line.1239"></a>
-<span class="sourceLineNo">1240</span>  // Will be overridden in tests<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span>  @InterfaceAudience.Private<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span>  protected void initClusterSchemaService() throws IOException, InterruptedException {<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span>    this.clusterSchemaService = new ClusterSchemaServiceImpl(this);<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span>    this.clusterSchemaService.startAsync();<a name="line.1244"></a>
-<span class="sourceLineNo">1245</span>    try {<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span>      this.clusterSchemaService.awaitRunning(getConfiguration().getInt(<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span>        HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span>        DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span>    } catch (TimeoutException toe) {<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span>      throw new IOException("Timedout starting ClusterSchemaService", toe);<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span>    }<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span>  }<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span><a name="line.1253"></a>
-<span class="sourceLineNo">1254</span>  private void initQuotaManager() throws IOException {<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span>    MasterQuotaManager quotaManager = new MasterQuotaManager(this);<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span>    quotaManager.start();<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span>    this.quotaManager = quotaManager;<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span>  }<a name="line.1258"></a>
-<span class="sourceLineNo">1259</span><a name="line.1259"></a>
-<span class="sourceLineNo">1260</span>  private SpaceQuotaSnapshotNotifier createQuotaSnapshotNotifier() {<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span>    SpaceQuotaSnapshotNotifier notifier =<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span>        SpaceQuotaSnapshotNotifierFactory.getInstance().create(getConfiguration());<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span>    return notifier;<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span>  }<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span><a name="line.1265"></a>
-<span class="sourceLineNo">1266</span>  public boolean isCatalogJanitorEnabled() {<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span>    return catalogJanitorChore != null ? catalogJanitorChore.getEnabled() : false;<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>  boolean isCleanerChoreEnabled() {<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span>    boolean hfileCleanerFlag = true, logCleanerFlag = true;<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span><a name="line.1272"></a>
-<span class="sourceLineNo">1273</span>    if (hfileCleaner != null) {<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span>      hfileCleanerFlag = hfileCleaner.getEnabled();<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>    if (logCleaner != null) {<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span>      logCleanerFlag = logCleaner.getEnabled();<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span>    }<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span><a name="line.1280"></a>
-<span class="sourceLineNo">1281</span>    return (hfileCleanerFlag &amp;&amp; logCleanerFlag);<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span>  }<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span><a name="line.1283"></a>
-<span class="sourceLineNo">1284</span>  @Override<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span>  public ServerManager getServerManager() {<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span>    return this.serverManager;<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>  @Override<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span>  public MasterFileSystem getMasterFileSystem() {<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span>    return this.fileSystemManager;<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span>  }<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span><a name="line.1293"></a>
-<span class="sourceLineNo">1294</span>  @Override<a name="line.1294"></a>
-<span class="sourceLineNo">1295</span>  public MasterWalManager getMasterWalManager() {<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span>    return this.walManager;<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span>  }<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span><a name="line.1298"></a>
-<span class="sourceLineNo">1299</span>  @Override<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span>  public SplitWALManager getSplitWALManager() {<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span>    return splitWALManager;<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span>  }<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span><a name="line.1303"></a>
-<span class="sourceLineNo">1304</span>  @Override<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span>  public TableStateManager getTableStateManager() {<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span>    return tableStateManager;<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span>  }<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span><a name="line.1308"></a>
-<span class="sourceLineNo">1309</span>  /*<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span>   * Start up all services. If any of these threads gets an unhandled exception<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span>   * then they just die with a logged message.  This should be fine because<a name="line.1311"></a>
-<span class="sourceLineNo">1312</span>   * in general, we do not expect the master to get such unhandled exceptions<a name="line.1312"></a>
-<span class="sourceLineNo">1313</span>   *  as OOMEs; it should be lightly loaded. See what HRegionServer does if<a name="line.1313"></a>
-<span class="sourceLineNo">1314</span>   *  need to install an unexpected exception handler.<a name="line.1314"></a>
-<span class="sourceLineNo">1315</span>   */<a name="line.1315"></a>
-<span class="sourceLineNo">1316</span>  private void startServiceThreads() throws IOException {<a name="line.1316"></a>
-<span class="sourceLineNo">1317</span>    // Start the executor service pools<a name="line.1317"></a>
-<span class="sourceLineNo">1318</span>    final int masterOpenRegionPoolSize = conf.getInt(<a name="line.1318"></a>
-<span class="sourceLineNo">1319</span>        HConstants.MASTER_OPEN_REGION_THREADS, HConstants.MASTER_OPEN_REGION_THREADS_DEFAULT);<a name="line.1319"></a>
-<span class="sourceLineNo">1320</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1320"></a>
-<span class="sourceLineNo">1321</span>        ExecutorType.MASTER_OPEN_REGION).setCorePoolSize(masterOpenRegionPoolSize));<a name="line.1321"></a>
-<span class="sourceLineNo">1322</span>    final int masterCloseRegionPoolSize = conf.getInt(<a name="line.1322"></a>
-<span class="sourceLineNo">1323</span>        HConstants.MASTER_CLOSE_REGION_THREADS, HConstants.MASTER_CLOSE_REGION_THREADS_DEFAULT);<a name="line.1323"></a>
-<span class="sourceLineNo">1324</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1324"></a>
-<span class="sourceLineNo">1325</span>        ExecutorType.MASTER_CLOSE_REGION).setCorePoolSize(masterCloseRegionPoolSize));<a name="line.1325"></a>
-<span class="sourceLineNo">1326</span>    final int masterServerOpThreads = conf.getInt(HConstants.MASTER_SERVER_OPERATIONS_THREADS,<a name="line.1326"></a>
-<span class="sourceLineNo">1327</span>        HConstants.MASTER_SERVER_OPERATIONS_THREADS_DEFAULT);<a name="line.1327"></a>
-<span class="sourceLineNo">1328</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1328"></a>
-<span class="sourceLineNo">1329</span>        ExecutorType.MASTER_SERVER_OPERATIONS).setCorePoolSize(masterServerOpThreads));<a name="line.1329"></a>
-<span class="sourceLineNo">1330</span>    final int masterServerMetaOpsThreads = conf.getInt(<a name="line.1330"></a>
-<span class="sourceLineNo">1331</span>        HConstants.MASTER_META_SERVER_OPERATIONS_THREADS,<a name="line.1331"></a>
-<span class="sourceLineNo">1332</span>        HConstants.MASTER_META_SERVER_OPERATIONS_THREADS_DEFAULT);<a name="line.1332"></a>
-<span class="sourceLineNo">1333</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1333"></a>
-<span class="sourceLineNo">1334</span>        ExecutorType.MASTER_META_SERVER_OPERATIONS).setCorePoolSize(masterServerMetaOpsThreads));<a name="line.1334"></a>
-<span class="sourceLineNo">1335</span>    final int masterLogReplayThreads = conf.getInt(<a name="line.1335"></a>
-<span class="sourceLineNo">1336</span>        HConstants.MASTER_LOG_REPLAY_OPS_THREADS, HConstants.MASTER_LOG_REPLAY_OPS_THREADS_DEFAULT);<a name="line.1336"></a>
-<span class="sourceLineNo">1337</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1337"></a>
-<span class="sourceLineNo">1338</span>        ExecutorType.M_LOG_REPLAY_OPS).setCorePoolSize(masterLogReplayThreads));<a name="line.1338"></a>
-<span class="sourceLineNo">1339</span>    final int masterSnapshotThreads = conf.getInt(<a name="line.1339"></a>
-<span class="sourceLineNo">1340</span>        SnapshotManager.SNAPSHOT_POOL_THREADS_KEY, SnapshotManager.SNAPSHOT_POOL_THREADS_DEFAULT);<a name="line.1340"></a>
-<span class="sourceLineNo">1341</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1341"></a>
-<span class="sourceLineNo">1342</span>        ExecutorType.MASTER_SNAPSHOT_OPERATIONS).setCorePoolSize(masterSnapshotThreads)<a name="line.1342"></a>
-<span class="sourceLineNo">1343</span>        .setAllowCoreThreadTimeout(true));<a name="line.1343"></a>
-<span class="sourceLineNo">1344</span>    final int masterMergeDispatchThreads = conf.getInt(HConstants.MASTER_MERGE_DISPATCH_THREADS,<a name="line.1344"></a>
-<span class="sourceLineNo">1345</span>        HConstants.MASTER_MERGE_DISPATCH_THREADS_DEFAULT);<a name="line.1345"></a>
-<span class="sourceLineNo">1346</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1346"></a>
-<span class="sourceLineNo">1347</span>        ExecutorType.MASTER_MERGE_OPERATIONS).setCorePoolSize(masterMergeDispatchThreads)<a name="line.1347"></a>
-<span class="sourceLineNo">1348</span>        .setAllowCoreThreadTimeout(true));<a name="line.1348"></a>
-<span class="sourceLineNo">1349</span><a name="line.1349"></a>
-<span class="sourceLineNo">1350</span>    // We depend on there being only one instance of this executor running<a name="line.1350"></a>
-<span class="sourceLineNo">1351</span>    // at a time. To do concurrency, would need fencing of enable/disable of<a name="line.1351"></a>
-<span class="sourceLineNo">1352</span>    // tables.<a name="line.1352"></a>
-<span class="sourceLineNo">1353</span>    // Any time changing this maxThreads to &gt; 1, pls see the comment at<a name="line.1353"></a>
-<span class="sourceLineNo">1354</span>    // AccessController#postCompletedCreateTableAction<a name="line.1354"></a>
-<span class="sourceLineNo">1355</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1355"></a>
-<span class="sourceLineNo">1356</span>        ExecutorType.MASTER_TABLE_OPERATIONS).setCorePoolSize(1));<a name="line.1356"></a>
-<span class="sourceLineNo">1357</span>    startProcedureExecutor();<a name="line.1357"></a>
-<span class="sourceLineNo">1358</span><a name="line.1358"></a>
-<span class="sourceLineNo">1359</span>    // Create cleaner thread pool<a name="line.1359"></a>
-<span class="sourceLineNo">1360</span>    cleanerPool = new DirScanPool(conf);<a name="line.1360"></a>
-<span class="sourceLineNo">1361</span>    Map&lt;String, Object&gt; params = new HashMap&lt;&gt;();<a name="line.1361"></a>
-<span class="sourceLineNo">1362</span>    params.put(MASTER, this);<a name="line.1362"></a>
-<span class="sourceLineNo">1363</span>    // Start log cleaner thread<a name="line.1363"></a>
-<span class="sourceLineNo">1364</span>    int cleanerInterval =<a name="line.1364"></a>
-<span class="sourceLineNo">1365</span>      conf.getInt(HBASE_MASTER_CLEANER_INTERVAL, DEFAULT_HBASE_MASTER_CLEANER_INTERVAL);<a name="line.1365"></a>
-<span class="sourceLineNo">1366</span>    this.logCleaner = new LogCleaner(cleanerInterval, this, conf,<a name="line.1366"></a>
-<span class="sourceLineNo">1367</span>      getMasterWalManager().getFileSystem(), getMasterWalManager().getOldLogDir(), cleanerPool, params);<a name="line.1367"></a>
-<span class="sourceLineNo">1368</span>    getChoreService().scheduleChore(logCleaner);<a name="line.1368"></a>
-<span class="sourceLineNo">1369</span><a name="line.1369"></a>
-<span class="sourceLineNo">1370</span>    // start the hfile archive cleaner thread<a name="line.1370"></a>
-<span class="sourceLineNo">1371</span>    Path archiveDir = HFileArchiveUtil.getArchivePath(conf);<a name="line.1371"></a>
-<span class="sourceLineNo">1372</span>    this.hfileCleaner = new HFileCleaner(cleanerInterval, this, conf,<a name="line.1372"></a>
-<span class="sourceLineNo">1373</span>      getMasterFileSystem().getFileSystem(), archiveDir, cleanerPool, params);<a name="line.1373"></a>
-<span class="sourceLineNo">1374</span>    getChoreService().scheduleChore(hfileCleaner);<a name="line.1374"></a>
-<span class="sourceLineNo">1375</span><a name="line.1375"></a>
-<span class="sourceLineNo">1376</span>    // Regions Reopen based on very high storeFileRefCount is considered enabled<a name="line.1376"></a>
-<span class="sourceLineNo">1377</span>    // only if hbase.regions.recovery.store.file.ref.count has value &gt; 0<a name="line.1377"></a>
-<span class="sourceLineNo">1378</span>    final int maxStoreFileRefCount = conf.getInt(<a name="line.1378"></a>
-<span class="sourceLineNo">1379</span>      HConstants.STORE_FILE_REF_COUNT_THRESHOLD,<a name="line.1379"></a>
-<span class="sourceLineNo">1380</span>      HConstants.DEFAULT_STORE_FILE_REF_COUNT_THRESHOLD);<a name="line.1380"></a>
-<span class="sourceLineNo">1381</span>    if (maxStoreFileRefCount &gt; 0) {<a name="line.1381"></a>
-<span class="sourceLineNo">1382</span>      this.regionsRecoveryChore = new RegionsRecoveryChore(this, conf, this);<a name="line.1382"></a>
-<span class="sourceLineNo">1383</span>      getChoreService().scheduleChore(this.regionsRecoveryChore);<a name="line.1383"></a>
-<span class="sourceLineNo">1384</span>    } else {<a name="line.1384"></a>
-<span class="sourceLineNo">1385</span>      LOG.info("Reopening regions with very high storeFileRefCount is disabled. " +<a name="line.1385"></a>
-<span class="sourceLineNo">1386</span>          "Provide threshold value &gt; 0 for {} to enable it.",<a name="line.1386"></a>
-<span class="sourceLineNo">1387</span>        HConstants.STORE_FILE_REF_COUNT_THRESHOLD);<a name="line.1387"></a>
-<span class="sourceLineNo">1388</span>    }<a name="line.1388"></a>
-<span class="sourceLineNo">1389</span><a name="line.1389"></a>
-<span class="sourceLineNo">1390</span>    this.regionsRecoveryConfigManager = new RegionsRecoveryConfigManager(this);<a name="line.1390"></a>
-<span class="sourceLineNo">1391</span><a name="line.1391"></a>
-<span class="sourceLineNo">1392</span>    replicationBarrierCleaner = new ReplicationBarrierCleaner(conf, this, getConnection(),<a name="line.1392"></a>
-<span class="sourceLineNo">1393</span>      replicationPeerManager);<a name="line.1393"></a>
-<span class="sourceLineNo">1394</span>    getChoreService().scheduleChore(replicationBarrierCleaner);<a name="line.1394"></a>
-<span class="sourceLineNo">1395</span><a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    final boolean isSnapshotChoreEnabled = this.snapshotCleanupTracker<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>        .isSnapshotCleanupEnabled();<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>    this.snapshotCleanerChore = new SnapshotCleanerChore(this, conf, getSnapshotManager());<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span>    if (isSnapshotChoreEnabled) {<a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>      getChoreService().scheduleChore(this.snapshotCleanerChore);<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>    } else {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>      if (LOG.isTraceEnabled()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>        LOG.trace("Snapshot Cleaner Chore is disabled. Not starting up the chore..");<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    serviceStarted = true;<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (LOG.isTraceEnabled()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.trace("Started service threads");<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>    }<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>  @Override<a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>  protected void stopServiceThreads() {<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>    if (masterJettyServer != null) {<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span>      LOG.info("Stopping master jetty server");<a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>      try {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>        masterJettyServer.stop();<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      } catch (Exception e) {<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>        LOG.error("Failed to stop master jetty server", e);<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>    stopChores();<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span><a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    super.stopServiceThreads();<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>    if (cleanerPool != null) {<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span>      cleanerPool.shutdownNow();<a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>      cleanerPool = null;<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span><a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>    LOG.debug("Stopping service threads");<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>    // stop procedure executor prior to other services such as server manager and assignment<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>    // manager, as these services are important for some running procedures. See HBASE-24117 for<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    // example.<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>    stopProcedureExecutor();<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span><a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    if (regionNormalizerManager != null) {<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>      regionNormalizerManager.stop();<a name="line.1438"></a>
-<span class="sourceLineNo">1439</span>    }<a name="line.1439"></a>
-<span class="sourceLineNo">1440</span>    if (this.quotaManager != null) {<a name="line.1440"></a>
-<span class="sourceLineNo">1441</span>      this.quotaManager.stop();<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>    }<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span><a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>    if (this.activeMasterManager != null) {<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span>      this.activeMasterManager.stop();<a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>    if (this.serverManager != null) {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>      this.serverManager.stop();<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>    }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span>    if (this.assignmentManager != null) {<a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>      this.assignmentManager.stop();<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>    }<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span><a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>    if (masterRegion != null) {<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>      masterRegion.close(isAborted());<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>    }<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>    if (this.walManager != null) {<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>      this.walManager.stop();<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>    }<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>    if (this.fileSystemManager != null) {<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>      this.fileSystemManager.stop();<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>    }<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>    if (this.mpmHost != null) {<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>      this.mpmHost.stop("server shutting down.");<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>    }<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>    if (this.regionServerTracker != null) {<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>      this.regionServerTracker.stop();<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    }<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private void createProcedureExecutor() throws IOException {<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span>    MasterProcedureEnv procEnv = new MasterProcedureEnv(this);<a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>    procedureStore =<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>      new RegionProcedureStore(this, masterRegion, new MasterProcedureEnv.FsUtilsLeaseRecovery(this));<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>    procedureStore.registerListener(new ProcedureStoreListener() {<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span><a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>      @Override<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>      public void abortProcess() {<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>        abort("The Procedure Store lost the lease", null);<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>    MasterProcedureScheduler procedureScheduler = procEnv.getProcedureScheduler();<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>    procedureExecutor = new ProcedureExecutor&lt;&gt;(conf, procEnv, procedureStore, procedureScheduler);<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>    configurationManager.registerObserver(procEnv);<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span><a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>    int cpus = Runtime.getRuntime().availableProcessors();<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>    final int numThreads = conf.getInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS, Math.max(<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>      (cpus &gt; 0 ? cpus / 4 : 0), MasterProcedureConstants.DEFAULT_MIN_MASTER_PROCEDURE_THREADS));<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>    final boolean abortOnCorruption =<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span>      conf.getBoolean(MasterProcedureConstants.EXECUTOR_ABORT_ON_CORRUPTION,<a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>        MasterProcedureConstants.DEFAULT_EXECUTOR_ABORT_ON_CORRUPTION);<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>    procedureStore.start(numThreads);<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>    // Just initialize it but do not start the workers, we will start the workers later by calling<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>    // startProcedureExecutor. See the javadoc for finishActiveMasterInitialization for more<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>    // details.<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>    procedureExecutor.init(numThreads, abortOnCorruption);<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>    if (!procEnv.getRemoteDispatcher().start()) {<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>      throw new HBaseIOException("Failed start of remote dispatcher");<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>  private void startProcedureExecutor() throws IOException {<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>    procedureExecutor.startWorkers();<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>  /**<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   * Turn on/off Snapshot Cleanup Chore<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>   *<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>   * @param on indicates whether Snapshot Cleanup Chore is to be run<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>   */<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>  void switchSnapshotCleanup(final boolean on, final boolean synchronous) {<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>    if (synchronous) {<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>      synchronized (this.snapshotCleanerChore) {<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span>        switchSnapshotCleanup(on);<a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>      }<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    } else {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      switchSnapshotCleanup(on);<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><a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>  private void switchSnapshotCleanup(final boolean on) {<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    try {<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      snapshotCleanupTracker.setSnapshotCleanupEnabled(on);<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span>      if (on) {<a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>        getChoreService().scheduleChore(this.snapshotCleanerChore);<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      } else {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        this.snapshotCleanerChore.cancel();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>    } catch (KeeperException e) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      LOG.error("Error updating snapshot cleanup mode to {}", on, e);<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">687</span>    this.loadBalancerTracker = new LoadBalancerTracker(zooKeeper, this);<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    this.loadBalancerTracker.start();<a name="line.688"></a>
+<span class="sourceLineNo">689</span><a name="line.689"></a>
+<span class="sourceLineNo">690</span>    this.regionNormalizerManager =<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      RegionNormalizerFactory.createNormalizerManager(conf, zooKeeper, this);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>    this.configurationManager.registerObserver(regionNormalizerManager);<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    this.regionNormalizerManager.start();<a name="line.693"></a>
+<span class="sourceLineNo">694</span><a name="line.694"></a>
+<span class="sourceLineNo">695</span>    this.splitOrMergeTracker = new SplitOrMergeTracker(zooKeeper, conf, this);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    this.splitOrMergeTracker.start();<a name="line.696"></a>
+<span class="sourceLineNo">697</span><a name="line.697"></a>
+<span class="sourceLineNo">698</span>    // This is for backwards compatible. We do not need the CP for rs group now but if user want to<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    // load it, we need to enable rs group.<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    String[] cpClasses = conf.getStrings(MasterCoprocessorHost.MASTER_COPROCESSOR_CONF_KEY);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>    if (cpClasses != null) {<a name="line.701"></a>
+<span class="sourceLineNo">702</span>      for (String cpClass : cpClasses) {<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        if (RSGroupAdminEndpoint.class.getName().equals(cpClass)) {<a name="line.703"></a>
+<span class="sourceLineNo">704</span>          RSGroupUtil.enableRSGroup(conf);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>          break;<a name="line.705"></a>
+<span class="sourceLineNo">706</span>        }<a name="line.706"></a>
+<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>    }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    this.rsGroupInfoManager = RSGroupInfoManager.create(this);<a name="line.709"></a>
+<span class="sourceLineNo">710</span><a name="line.710"></a>
+<span class="sourceLineNo">711</span>    this.replicationPeerManager = ReplicationPeerManager.create(zooKeeper, conf, clusterId);<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>    this.drainingServerTracker = new DrainingServerTracker(zooKeeper, this, this.serverManager);<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    this.drainingServerTracker.start();<a name="line.714"></a>
+<span class="sourceLineNo">715</span><a name="line.715"></a>
+<span class="sourceLineNo">716</span>    this.snapshotCleanupTracker = new SnapshotCleanupTracker(zooKeeper, this);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    this.snapshotCleanupTracker.start();<a name="line.717"></a>
+<span class="sourceLineNo">718</span><a name="line.718"></a>
+<span class="sourceLineNo">719</span>    String clientQuorumServers = conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>    boolean clientZkObserverMode = conf.getBoolean(HConstants.CLIENT_ZOOKEEPER_OBSERVER_MODE,<a name="line.720"></a>
+<span class="sourceLineNo">721</span>      HConstants.DEFAULT_CLIENT_ZOOKEEPER_OBSERVER_MODE);<a name="line.721"></a>
+<span class="sourceLineNo">722</span>    if (clientQuorumServers != null &amp;&amp; !clientZkObserverMode) {<a name="line.722"></a>
+<span class="sourceLineNo">723</span>      // we need to take care of the ZK information synchronization<a name="line.723"></a>
+<span class="sourceLineNo">724</span>      // if given client ZK are not observer nodes<a name="line.724"></a>
+<span class="sourceLineNo">725</span>      ZKWatcher clientZkWatcher = new ZKWatcher(conf,<a name="line.725"></a>
+<span class="sourceLineNo">726</span>          getProcessName() + ":" + rpcServices.getSocketAddress().getPort() + "-clientZK", this,<a name="line.726"></a>
+<span class="sourceLineNo">727</span>          false, true);<a name="line.727"></a>
+<span class="sourceLineNo">728</span>      this.metaLocationSyncer = new MetaLocationSyncer(zooKeeper, clientZkWatcher, this);<a name="line.728"></a>
+<span class="sourceLineNo">729</span>      this.metaLocationSyncer.start();<a name="line.729"></a>
+<span class="sourceLineNo">730</span>      this.masterAddressSyncer = new MasterAddressSyncer(zooKeeper, clientZkWatcher, this);<a name="line.730"></a>
+<span class="sourceLineNo">731</span>      this.masterAddressSyncer.start();<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      // set cluster id is a one-go effort<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      ZKClusterId.setClusterId(clientZkWatcher, fileSystemManager.getClusterId());<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    }<a name="line.734"></a>
+<span class="sourceLineNo">735</span><a name="line.735"></a>
+<span class="sourceLineNo">736</span>    // Set the cluster as up.  If new RSs, they'll be waiting on this before<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // going ahead with their startup.<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    boolean wasUp = this.clusterStatusTracker.isClusterUp();<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    if (!wasUp) this.clusterStatusTracker.setClusterUp();<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>    LOG.info("Active/primary master=" + this.serverName +<a name="line.741"></a>
+<span class="sourceLineNo">742</span>        ", sessionid=0x" +<a name="line.742"></a>
+<span class="sourceLineNo">743</span>        Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()) +<a name="line.743"></a>
+<span class="sourceLineNo">744</span>        ", setting cluster-up flag (Was=" + wasUp + ")");<a name="line.744"></a>
+<span class="sourceLineNo">745</span><a name="line.745"></a>
+<span class="sourceLineNo">746</span>    // create/initialize the snapshot manager and other procedure managers<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    this.snapshotManager = new SnapshotManager();<a name="line.747"></a>
+<span class="sourceLineNo">748</span>    this.mpmHost = new MasterProcedureManagerHost();<a name="line.748"></a>
+<span class="sourceLineNo">749</span>    this.mpmHost.register(this.snapshotManager);<a name="line.749"></a>
+<span class="sourceLineNo">750</span>    this.mpmHost.register(new MasterFlushTableProcedureManager());<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    this.mpmHost.loadProcedures(conf);<a name="line.751"></a>
+<span class="sourceLineNo">752</span>    this.mpmHost.initialize(this, this.metricsMaster);<a name="line.752"></a>
+<span class="sourceLineNo">753</span>  }<a name="line.753"></a>
+<span class="sourceLineNo">754</span><a name="line.754"></a>
+<span class="sourceLineNo">755</span>  // Will be overriden in test to inject customized AssignmentManager<a name="line.755"></a>
+<span class="sourceLineNo">756</span>  @InterfaceAudience.Private<a name="line.756"></a>
+<span class="sourceLineNo">757</span>  protected AssignmentManager createAssignmentManager(MasterServices master) {<a name="line.757"></a>
+<span class="sourceLineNo">758</span>    return new AssignmentManager(master);<a name="line.758"></a>
+<span class="sourceLineNo">759</span>  }<a name="line.759"></a>
+<span class="sourceLineNo">760</span><a name="line.760"></a>
+<span class="sourceLineNo">761</span>  /**<a name="line.761"></a>
+<span class="sourceLineNo">762</span>   * Finish initialization of HMaster after becoming the primary master.<a name="line.762"></a>
+<span class="sourceLineNo">763</span>   * &lt;p/&gt;<a name="line.763"></a>
+<span class="sourceLineNo">764</span>   * The startup order is a bit complicated but very important, do not change it unless you know<a name="line.764"></a>
+<span class="sourceLineNo">765</span>   * what you are doing.<a name="line.765"></a>
+<span class="sourceLineNo">766</span>   * &lt;ol&gt;<a name="line.766"></a>
+<span class="sourceLineNo">767</span>   * &lt;li&gt;Initialize file system based components - file system manager, wal manager, table<a name="line.767"></a>
+<span class="sourceLineNo">768</span>   * descriptors, etc&lt;/li&gt;<a name="line.768"></a>
+<span class="sourceLineNo">769</span>   * &lt;li&gt;Publish cluster id&lt;/li&gt;<a name="line.769"></a>
+<span class="sourceLineNo">770</span>   * &lt;li&gt;Here comes the most complicated part - initialize server manager, assignment manager and<a name="line.770"></a>
+<span class="sourceLineNo">771</span>   * region server tracker<a name="line.771"></a>
+<span class="sourceLineNo">772</span>   * &lt;ol type='i'&gt;<a name="line.772"></a>
+<span class="sourceLineNo">773</span>   * &lt;li&gt;Create server manager&lt;/li&gt;<a name="line.773"></a>
+<span class="sourceLineNo">774</span>   * &lt;li&gt;Create procedure executor, load the procedures, but do not start workers. We will start it<a name="line.774"></a>
+<span class="sourceLineNo">775</span>   * later after we finish scheduling SCPs to avoid scheduling duplicated SCPs for the same<a name="line.775"></a>
+<span class="sourceLineNo">776</span>   * server&lt;/li&gt;<a name="line.776"></a>
+<span class="sourceLineNo">777</span>   * &lt;li&gt;Create assignment manager and start it, load the meta region state, but do not load data<a name="line.777"></a>
+<span class="sourceLineNo">778</span>   * from meta region&lt;/li&gt;<a name="line.778"></a>
+<span class="sourceLineNo">779</span>   * &lt;li&gt;Start region server tracker, construct the online servers set and find out dead servers and<a name="line.779"></a>
+<span class="sourceLineNo">780</span>   * schedule SCP for them. The online servers will be constructed by scanning zk, and we will also<a name="line.780"></a>
+<span class="sourceLineNo">781</span>   * scan the wal directory to find out possible live region servers, and the differences between<a name="line.781"></a>
+<span class="sourceLineNo">782</span>   * these two sets are the dead servers&lt;/li&gt;<a name="line.782"></a>
+<span class="sourceLineNo">783</span>   * &lt;/ol&gt;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>   * &lt;/li&gt;<a name="line.784"></a>
+<span class="sourceLineNo">785</span>   * &lt;li&gt;If this is a new deploy, schedule a InitMetaProcedure to initialize meta&lt;/li&gt;<a name="line.785"></a>
+<span class="sourceLineNo">786</span>   * &lt;li&gt;Start necessary service threads - balancer, catalog janitor, executor services, and also<a name="line.786"></a>
+<span class="sourceLineNo">787</span>   * the procedure executor, etc. Notice that the balancer must be created first as assignment<a name="line.787"></a>
+<span class="sourceLineNo">788</span>   * manager may use it when assigning regions.&lt;/li&gt;<a name="line.788"></a>
+<span class="sourceLineNo">789</span>   * &lt;li&gt;Wait for meta to be initialized if necessary, start table state manager.&lt;/li&gt;<a name="line.789"></a>
+<span class="sourceLineNo">790</span>   * &lt;li&gt;Wait for enough region servers to check-in&lt;/li&gt;<a name="line.790"></a>
+<span class="sourceLineNo">791</span>   * &lt;li&gt;Let assignment manager load data from meta and construct region states&lt;/li&gt;<a name="line.791"></a>
+<span class="sourceLineNo">792</span>   * &lt;li&gt;Start all other things such as chore services, etc&lt;/li&gt;<a name="line.792"></a>
+<span class="sourceLineNo">793</span>   * &lt;/ol&gt;<a name="line.793"></a>
+<span class="sourceLineNo">794</span>   * &lt;p/&gt;<a name="line.794"></a>
+<span class="sourceLineNo">795</span>   * Notice that now we will not schedule a special procedure to make meta online(unless the first<a name="line.795"></a>
+<span class="sourceLineNo">796</span>   * time where meta has not been created yet), we will rely on SCP to bring meta online.<a name="line.796"></a>
+<span class="sourceLineNo">797</span>   */<a name="line.797"></a>
+<span class="sourceLineNo">798</span>  private void finishActiveMasterInitialization(MonitoredTask status) throws IOException,<a name="line.798"></a>
+<span class="sourceLineNo">799</span>          InterruptedException, KeeperException, ReplicationException {<a name="line.799"></a>
+<span class="sourceLineNo">800</span>    /*<a name="line.800"></a>
+<span class="sourceLineNo">801</span>     * We are active master now... go initialize components we need to run.<a name="line.801"></a>
+<span class="sourceLineNo">802</span>     */<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    status.setStatus("Initializing Master file system");<a name="line.803"></a>
+<span class="sourceLineNo">804</span><a name="line.804"></a>
+<span class="sourceLineNo">805</span>    this.masterActiveTime = System.currentTimeMillis();<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    // TODO: Do this using Dependency Injection, using PicoContainer, Guice or Spring.<a name="line.806"></a>
+<span class="sourceLineNo">807</span><a name="line.807"></a>
+<span class="sourceLineNo">808</span>    // always initialize the MemStoreLAB as we use a region to store data in master now, see<a name="line.808"></a>
+<span class="sourceLineNo">809</span>    // localStore.<a name="line.809"></a>
+<span class="sourceLineNo">810</span>    initializeMemStoreChunkCreator();<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    this.fileSystemManager = new MasterFileSystem(conf);<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    this.walManager = new MasterWalManager(this);<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>    // warm-up HTDs cache on master initialization<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    if (preLoadTableDescriptors) {<a name="line.815"></a>
+<span class="sourceLineNo">816</span>      status.setStatus("Pre-loading table descriptors");<a name="line.816"></a>
+<span class="sourceLineNo">817</span>      this.tableDescriptors.getAll();<a name="line.817"></a>
+<span class="sourceLineNo">818</span>    }<a name="line.818"></a>
+<span class="sourceLineNo">819</span><a name="line.819"></a>
+<span class="sourceLineNo">820</span>    // Publish cluster ID; set it in Master too. The superclass RegionServer does this later but<a name="line.820"></a>
+<span class="sourceLineNo">821</span>    // only after it has checked in with the Master. At least a few tests ask Master for clusterId<a name="line.821"></a>
+<span class="sourceLineNo">822</span>    // before it has called its run method and before RegionServer has done the reportForDuty.<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    ClusterId clusterId = fileSystemManager.getClusterId();<a name="line.823"></a>
+<span class="sourceLineNo">824</span>    status.setStatus("Publishing Cluster ID " + clusterId + " in ZooKeeper");<a name="line.824"></a>
+<span class="sourceLineNo">825</span>    ZKClusterId.setClusterId(this.zooKeeper, fileSystemManager.getClusterId());<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    this.clusterId = clusterId.toString();<a name="line.826"></a>
+<span class="sourceLineNo">827</span><a name="line.827"></a>
+<span class="sourceLineNo">828</span>    // Precaution. Put in place the old hbck1 lock file to fence out old hbase1s running their<a name="line.828"></a>
+<span class="sourceLineNo">829</span>    // hbck1s against an hbase2 cluster; it could do damage. To skip this behavior, set<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    // hbase.write.hbck1.lock.file to false.<a name="line.830"></a>
+<span class="sourceLineNo">831</span>    if (this.conf.getBoolean("hbase.write.hbck1.lock.file", true)) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      Pair&lt;Path, FSDataOutputStream&gt; result = null;<a name="line.832"></a>
+<span class="sourceLineNo">833</span>      try {<a name="line.833"></a>
+<span class="sourceLineNo">834</span>        result = HBaseFsck.checkAndMarkRunningHbck(this.conf,<a name="line.834"></a>
+<span class="sourceLineNo">835</span>            HBaseFsck.createLockRetryCounterFactory(this.conf).create());<a name="line.835"></a>
+<span class="sourceLineNo">836</span>      } finally {<a name="line.836"></a>
+<span class="sourceLineNo">837</span>        if (result != null) {<a name="line.837"></a>
+<span class="sourceLineNo">838</span>          Closeables.close(result.getSecond(), true);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>        }<a name="line.839"></a>
+<span class="sourceLineNo">840</span>      }<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    }<a name="line.841"></a>
+<span class="sourceLineNo">842</span><a name="line.842"></a>
+<span class="sourceLineNo">843</span>    status.setStatus("Initialize ServerManager and schedule SCP for crash servers");<a name="line.843"></a>
+<span class="sourceLineNo">844</span>    // The below two managers must be created before loading procedures, as they will be used during<a name="line.844"></a>
+<span class="sourceLineNo">845</span>    // loading.<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    this.serverManager = createServerManager(this);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>    this.syncReplicationReplayWALManager = new SyncReplicationReplayWALManager(this);<a name="line.847"></a>
+<span class="sourceLineNo">848</span>    if (!conf.getBoolean(HBASE_SPLIT_WAL_COORDINATED_BY_ZK,<a name="line.848"></a>
+<span class="sourceLineNo">849</span>      DEFAULT_HBASE_SPLIT_COORDINATED_BY_ZK)) {<a name="line.849"></a>
+<span class="sourceLineNo">850</span>      this.splitWALManager = new SplitWALManager(this);<a name="line.850"></a>
+<span class="sourceLineNo">851</span>    }<a name="line.851"></a>
+<span class="sourceLineNo">852</span><a name="line.852"></a>
+<span class="sourceLineNo">853</span>    // initialize master local region<a name="line.853"></a>
+<span class="sourceLineNo">854</span>    masterRegion = MasterRegionFactory.create(this);<a name="line.854"></a>
+<span class="sourceLineNo">855</span>    createProcedureExecutor();<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    Map&lt;Class&lt;?&gt;, List&lt;Procedure&lt;MasterProcedureEnv&gt;&gt;&gt; procsByType =<a name="line.856"></a>
+<span class="sourceLineNo">857</span>      procedureExecutor.getActiveProceduresNoCopy().stream()<a name="line.857"></a>
+<span class="sourceLineNo">858</span>        .collect(Collectors.groupingBy(p -&gt; p.getClass()));<a name="line.858"></a>
+<span class="sourceLineNo">859</span><a name="line.859"></a>
+<span class="sourceLineNo">860</span>    // Create Assignment Manager<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    this.assignmentManager = createAssignmentManager(this);<a name="line.861"></a>
+<span class="sourceLineNo">862</span>    this.assignmentManager.start();<a name="line.862"></a>
+<span class="sourceLineNo">863</span>    // TODO: TRSP can perform as the sub procedure for other procedures, so even if it is marked as<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    // completed, it could still be in the procedure list. This is a bit strange but is another<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    // story, need to verify the implementation for ProcedureExecutor and ProcedureStore.<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    List&lt;TransitRegionStateProcedure&gt; ritList =<a name="line.866"></a>
+<span class="sourceLineNo">867</span>      procsByType.getOrDefault(TransitRegionStateProcedure.class, Collections.emptyList()).stream()<a name="line.867"></a>
+<span class="sourceLineNo">868</span>        .filter(p -&gt; !p.isFinished()).map(p -&gt; (TransitRegionStateProcedure) p)<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        .collect(Collectors.toList());<a name="line.869"></a>
+<span class="sourceLineNo">870</span>    this.assignmentManager.setupRIT(ritList);<a name="line.870"></a>
+<span class="sourceLineNo">871</span><a name="line.871"></a>
+<span class="sourceLineNo">872</span>    // Start RegionServerTracker with listing of servers found with exiting SCPs -- these should<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    // be registered in the deadServers set -- and with the list of servernames out on the<a name="line.873"></a>
+<span class="sourceLineNo">874</span>    // filesystem that COULD BE 'alive' (we'll schedule SCPs for each and let SCP figure it out).<a name="line.874"></a>
+<span class="sourceLineNo">875</span>    // We also pass dirs that are already 'splitting'... so we can do some checks down in tracker.<a name="line.875"></a>
+<span class="sourceLineNo">876</span>    // TODO: Generate the splitting and live Set in one pass instead of two as we currently do.<a name="line.876"></a>
+<span class="sourceLineNo">877</span>    this.regionServerTracker = new RegionServerTracker(zooKeeper, this, this.serverManager);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>    this.regionServerTracker.start(<a name="line.878"></a>
+<span class="sourceLineNo">879</span>      procsByType.getOrDefault(ServerCrashProcedure.class, Collections.emptyList()).stream()<a name="line.879"></a>
+<span class="sourceLineNo">880</span>        .map(p -&gt; (ServerCrashProcedure) p).map(p -&gt; p.getServerName()).collect(Collectors.toSet()),<a name="line.880"></a>
+<span class="sourceLineNo">881</span>      walManager.getLiveServersFromWALDir(), walManager.getSplittingServersFromWALDir());<a name="line.881"></a>
+<span class="sourceLineNo">882</span>    // This manager must be accessed AFTER hbase:meta is confirmed on line..<a name="line.882"></a>
+<span class="sourceLineNo">883</span>    this.tableStateManager = new TableStateManager(this);<a name="line.883"></a>
+<span class="sourceLineNo">884</span><a name="line.884"></a>
+<span class="sourceLineNo">885</span>    status.setStatus("Initializing ZK system trackers");<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    initializeZKBasedSystemTrackers();<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    status.setStatus("Loading last flushed sequence id of regions");<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    try {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>      this.serverManager.loadLastFlushedSequenceIds();<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    } catch (IOException e) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      LOG.info("Failed to load last flushed sequence id of regions"<a name="line.891"></a>
+<span class="sourceLineNo">892</span>          + " from file system", e);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>    }<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    // Set ourselves as active Master now our claim has succeeded up in zk.<a name="line.894"></a>
+<span class="sourceLineNo">895</span>    this.activeMaster = true;<a name="line.895"></a>
+<span class="sourceLineNo">896</span><a name="line.896"></a>
+<span class="sourceLineNo">897</span>    // Start the Zombie master detector after setting master as active, see HBASE-21535<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    Thread zombieDetector = new Thread(new MasterInitializationMonitor(this),<a name="line.898"></a>
+<span class="sourceLineNo">899</span>        "ActiveMasterInitializationMonitor-" + System.currentTimeMillis());<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    zombieDetector.setDaemon(true);<a name="line.900"></a>
+<span class="sourceLineNo">901</span>    zombieDetector.start();<a name="line.901"></a>
+<span class="sourceLineNo">902</span><a name="line.902"></a>
+<span class="sourceLineNo">903</span>    if (!maintenanceMode) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      // Add the Observer to delete quotas on table deletion before starting all CPs by<a name="line.904"></a>
+<span class="sourceLineNo">905</span>      // default with quota support, avoiding if user specifically asks to not load this Observer.<a name="line.905"></a>
+<span class="sourceLineNo">906</span>      if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.906"></a>
+<span class="sourceLineNo">907</span>        updateConfigurationForQuotasObserver(conf);<a name="line.907"></a>
+<span class="sourceLineNo">908</span>      }<a name="line.908"></a>
+<span class="sourceLineNo">909</span>      // initialize master side coprocessors before we start handling requests<a name="line.909"></a>
+<span class="sourceLineNo">910</span>      status.setStatus("Initializing master coprocessors");<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      this.cpHost = new MasterCoprocessorHost(this, this.conf);<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    }<a name="line.912"></a>
+<span class="sourceLineNo">913</span><a name="line.913"></a>
+<span class="sourceLineNo">914</span>    // Checking if meta needs initializing.<a name="line.914"></a>
+<span class="sourceLineNo">915</span>    status.setStatus("Initializing meta table if this is a new deploy");<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    InitMetaProcedure initMetaProc = null;<a name="line.916"></a>
+<span class="sourceLineNo">917</span>    // Print out state of hbase:meta on startup; helps debugging.<a name="line.917"></a>
+<span class="sourceLineNo">918</span>    if (!this.assignmentManager.getRegionStates().hasTableRegionStates(TableName.META_TABLE_NAME)) {<a name="line.918"></a>
+<span class="sourceLineNo">919</span>      Optional&lt;InitMetaProcedure&gt; optProc = procedureExecutor.getProcedures().stream()<a name="line.919"></a>
+<span class="sourceLineNo">920</span>        .filter(p -&gt; p instanceof InitMetaProcedure).map(o -&gt; (InitMetaProcedure) o).findAny();<a name="line.920"></a>
+<span class="sourceLineNo">921</span>      initMetaProc = optProc.orElseGet(() -&gt; {<a name="line.921"></a>
+<span class="sourceLineNo">922</span>        // schedule an init meta procedure if meta has not been deployed yet<a name="line.922"></a>
+<span class="sourceLineNo">923</span>        InitMetaProcedure temp = new InitMetaProcedure();<a name="line.923"></a>
+<span class="sourceLineNo">924</span>        procedureExecutor.submitProcedure(temp);<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        return temp;<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      });<a name="line.926"></a>
+<span class="sourceLineNo">927</span>    }<a name="line.927"></a>
+<span class="sourceLineNo">928</span><a name="line.928"></a>
+<span class="sourceLineNo">929</span>    // initialize load balancer<a name="line.929"></a>
+<span class="sourceLineNo">930</span>    this.balancer.setMasterServices(this);<a name="line.930"></a>
+<span class="sourceLineNo">931</span>    this.balancer.setClusterMetrics(getClusterMetricsWithoutCoprocessor());<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    this.balancer.initialize();<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    // start up all service threads.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>    status.setStatus("Initializing master service threads");<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    startServiceThreads();<a name="line.936"></a>
+<span class="sourceLineNo">937</span>    // wait meta to be initialized after we start procedure executor<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    if (initMetaProc != null) {<a name="line.938"></a>
+<span class="sourceLineNo">939</span>      initMetaProc.await();<a name="line.939"></a>
+<span class="sourceLineNo">940</span>    }<a name="line.940"></a>
+<span class="sourceLineNo">941</span>    // Wake up this server to check in<a name="line.941"></a>
+<span class="sourceLineNo">942</span>    sleeper.skipSleepCycle();<a name="line.942"></a>
+<span class="sourceLineNo">943</span><a name="line.943"></a>
+<span class="sourceLineNo">944</span>    // Wait for region servers to report in.<a name="line.944"></a>
+<span class="sourceLineNo">945</span>    // With this as part of master initialization, it precludes our being able to start a single<a name="line.945"></a>
+<span class="sourceLineNo">946</span>    // server that is both Master and RegionServer. Needs more thought. TODO.<a name="line.946"></a>
+<span class="sourceLineNo">947</span>    String statusStr = "Wait for region servers to report in";<a name="line.947"></a>
+<span class="sourceLineNo">948</span>    status.setStatus(statusStr);<a name="line.948"></a>
+<span class="sourceLineNo">949</span>    LOG.info(Objects.toString(status));<a name="line.949"></a>
+<span class="sourceLineNo">950</span>    waitForRegionServers(status);<a name="line.950"></a>
+<span class="sourceLineNo">951</span><a name="line.951"></a>
+<span class="sourceLineNo">952</span>    // Check if master is shutting down because issue initializing regionservers or balancer.<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    if (isStopped()) {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      return;<a name="line.954"></a>
+<span class="sourceLineNo">955</span>    }<a name="line.955"></a>
+<span class="sourceLineNo">956</span><a name="line.956"></a>
+<span class="sourceLineNo">957</span>    status.setStatus("Starting assignment manager");<a name="line.957"></a>
+<span class="sourceLineNo">958</span>    // FIRST HBASE:META READ!!!!<a name="line.958"></a>
+<span class="sourceLineNo">959</span>    // The below cannot make progress w/o hbase:meta being online.<a name="line.959"></a>
+<span class="sourceLineNo">960</span>    // This is the FIRST attempt at going to hbase:meta. Meta on-lining is going on in background<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    // as procedures run -- in particular SCPs for crashed servers... One should put up hbase:meta<a name="line.961"></a>
+<span class="sourceLineNo">962</span>    // if it is down. It may take a while to come online. So, wait here until meta if for sure<a name="line.962"></a>
+<span class="sourceLineNo">963</span>    // available. That's what waitForMetaOnline does.<a name="line.963"></a>
+<span class="sourceLineNo">964</span>    if (!waitForMetaOnline()) {<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      return;<a name="line.965"></a>
+<span class="sourceLineNo">966</span>    }<a name="line.966"></a>
+<span class="sourceLineNo">967</span>    this.assignmentManager.joinCluster();<a name="line.967"></a>
+<span class="sourceLineNo">968</span>    // The below depends on hbase:meta being online.<a name="line.968"></a>
+<span class="sourceLineNo">969</span>    this.assignmentManager.processOfflineRegions();<a name="line.969"></a>
+<span class="sourceLineNo">970</span>    // this must be called after the above processOfflineRegions to prevent race<a name="line.970"></a>
+<span class="sourceLineNo">971</span>    this.assignmentManager.wakeMetaLoadedEvent();<a name="line.971"></a>
+<span class="sourceLineNo">972</span><a name="line.972"></a>
+<span class="sourceLineNo">973</span>    // for migrating from a version without HBASE-25099, and also for honoring the configuration<a name="line.973"></a>
+<span class="sourceLineNo">974</span>    // first.<a name="line.974"></a>
+<span class="sourceLineNo">975</span>    if (conf.get(HConstants.META_REPLICAS_NUM) != null) {<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      int replicasNumInConf =<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        conf.getInt(HConstants.META_REPLICAS_NUM, HConstants.DEFAULT_META_REPLICA_NUM);<a name="line.977"></a>
+<span class="sourceLineNo">978</span>      TableDescriptor metaDesc = tableDescriptors.get(TableName.META_TABLE_NAME);<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      if (metaDesc.getRegionReplication() != replicasNumInConf) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span>        // it is possible that we already have some replicas before upgrading, so we must set the<a name="line.980"></a>
+<span class="sourceLineNo">981</span>        // region replication number in meta TableDescriptor directly first, without creating a<a name="line.981"></a>
+<span class="sourceLineNo">982</span>        // ModifyTableProcedure, otherwise it may cause a double assign for the meta replicas.<a name="line.982"></a>
+<span class="sourceLineNo">983</span>        int existingReplicasCount =<a name="line.983"></a>
+<span class="sourceLineNo">984</span>          assignmentManager.getRegionStates().getRegionsOfTable(TableName.META_TABLE_NAME).size();<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if (existingReplicasCount &gt; metaDesc.getRegionReplication()) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          LOG.info("Update replica count of hbase:meta from {}(in TableDescriptor)" +<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            " to {}(existing ZNodes)", metaDesc.getRegionReplication(), existingReplicasCount);<a name="line.987"></a>
+<span class="sourceLineNo">988</span>          metaDesc = TableDescriptorBuilder.newBuilder(metaDesc)<a name="line.988"></a>
+<span class="sourceLineNo">989</span>            .setRegionReplication(existingReplicasCount).build();<a name="line.989"></a>
+<span class="sourceLineNo">990</span>          tableDescriptors.update(metaDesc);<a name="line.990"></a>
+<span class="sourceLineNo">991</span>        }<a name="line.991"></a>
+<span class="sourceLineNo">992</span>        // check again, and issue a ModifyTableProcedure if needed<a name="line.992"></a>
+<span class="sourceLineNo">993</span>        if (metaDesc.getRegionReplication() != replicasNumInConf) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          LOG.info(<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            "The {} config is {} while the replica count in TableDescriptor is {}" +<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              " for hbase:meta, altering...",<a name="line.996"></a>
+<span class="sourceLineNo">997</span>            HConstants.META_REPLICAS_NUM, replicasNumInConf, metaDesc.getRegionReplication());<a name="line.997"></a>
+<span class="sourceLineNo">998</span>          procedureExecutor.submitProcedure(new ModifyTableProcedure(<a name="line.998"></a>
+<span class="sourceLineNo">999</span>            procedureExecutor.getEnvironment(), TableDescriptorBuilder.newBuilder(metaDesc)<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>              .setRegionReplication(replicasNumInConf).build(),<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>            null, metaDesc, false));<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>      }<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    // Initialize after meta is up as below scans meta<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    if (getFavoredNodesManager() != null &amp;&amp; !maintenanceMode) {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>      SnapshotOfRegionAssignmentFromMeta snapshotOfRegionAssignment =<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>          new SnapshotOfRegionAssignmentFromMeta(getConnection());<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      snapshotOfRegionAssignment.initialize();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>      getFavoredNodesManager().initialize(snapshotOfRegionAssignment);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>    }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span><a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>    // set cluster status again after user regions are assigned<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>    this.balancer.setClusterMetrics(getClusterMetricsWithoutCoprocessor());<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span><a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>    // Start balancer and meta catalog janitor after meta and regions have been assigned.<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    status.setStatus("Starting balancer and catalog janitor");<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>    this.clusterStatusChore = new ClusterStatusChore(this, balancer);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    getChoreService().scheduleChore(clusterStatusChore);<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>    this.balancerChore = new BalancerChore(this);<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>    getChoreService().scheduleChore(balancerChore);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    if (regionNormalizerManager != null) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      getChoreService().scheduleChore(regionNormalizerManager.getRegionNormalizerChore());<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>    this.catalogJanitorChore = new CatalogJanitor(this);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>    getChoreService().scheduleChore(catalogJanitorChore);<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>    this.hbckChore = new HbckChore(this);<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>    getChoreService().scheduleChore(hbckChore);<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>    this.serverManager.startChore();<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span><a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>    // Only for rolling upgrade, where we need to migrate the data in namespace table to meta table.<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>    if (!waitForNamespaceOnline()) {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>      return;<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    }<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    status.setStatus("Starting cluster schema service");<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>    initClusterSchemaService();<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span><a name="line.1037"></a>
+<span class="sourceLineNo">1038</span>    if (this.cpHost != null) {<a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>      try {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>        this.cpHost.preMasterInitialization();<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>      } catch (IOException e) {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>        LOG.error("Coprocessor preMasterInitialization() hook failed", e);<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>      }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span>    }<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span><a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>    status.markComplete("Initialization successful");<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>    LOG.info(String.format("Master has completed initialization %.3fsec",<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>       (System.currentTimeMillis() - masterActiveTime) / 1000.0f));<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>    this.masterFinishedInitializationTime = System.currentTimeMillis();<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>    configurationManager.registerObserver(this.balancer);<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>    configurationManager.registerObserver(this.cleanerPool);<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>    configurationManager.registerObserver(this.hfileCleaner);<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>    configurationManager.registerObserver(this.logCleaner);<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>    configurationManager.registerObserver(this.regionsRecoveryConfigManager);<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>    // Set master as 'initialized'.<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>    setInitialized(true);<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span><a name="line.1057"></a>
+<span class="sourceLineNo">1058</span>    if (maintenanceMode) {<a name="line.1058"></a>
+<span class="sourceLineNo">1059</span>      LOG.info("Detected repair mode, skipping final initialization steps.");<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>      return;<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>    }<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span><a name="line.1062"></a>
+<span class="sourceLineNo">1063</span>    assignmentManager.checkIfShouldMoveSystemRegionAsync();<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span>    status.setStatus("Starting quota manager");<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>    initQuotaManager();<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span>      // Create the quota snapshot notifier<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span>      spaceQuotaSnapshotNotifier = createQuotaSnapshotNotifier();<a name="line.1068"></a>
+<span class="sourceLineNo">1069</span>      spaceQuotaSnapshotNotifier.initialize(getConnection());<a name="line.1069"></a>
+<span class="sourceLineNo">1070</span>      this.quotaObserverChore = new QuotaObserverChore(this, getMasterMetrics());<a name="line.1070"></a>
+<span class="sourceLineNo">1071</span>      // Start the chore to read the region FS space reports and act on them<a name="line.1071"></a>
+<span class="sourceLineNo">1072</span>      getChoreService().scheduleChore(quotaObserverChore);<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span><a name="line.1073"></a>
+<span class="sourceLineNo">1074</span>      this.snapshotQuotaChore = new SnapshotQuotaObserverChore(this, getMasterMetrics());<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span>      // Start the chore to read snapshots and add their usage to table/NS quotas<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span>      getChoreService().scheduleChore(snapshotQuotaChore);<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span>    }<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span>    final SlowLogMasterService slowLogMasterService = new SlowLogMasterService(conf, this);<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span>    slowLogMasterService.init();<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span><a name="line.1080"></a>
+<span class="sourceLineNo">1081</span>    // clear the dead servers with same host name and port of online server because we are not<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span>    // removing dead server with same hostname and port of rs which is trying to check in before<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span>    // master initialization. See HBASE-5916.<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span>    this.serverManager.clearDeadServersWithSameHostNameAndPortOfOnlineServer();<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span><a name="line.1085"></a>
+<span class="sourceLineNo">1086</span>    // Check and set the znode ACLs if needed in case we are overtaking a non-secure configuration<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span>    status.setStatus("Checking ZNode ACLs");<a name="line.1087"></a>
+<span class="sourceLineNo">1088</span>    zooKeeper.checkAndSetZNodeAcls();<a name="line.1088"></a>
+<span class="sourceLineNo">1089</span><a name="line.1089"></a>
+<span class="sourceLineNo">1090</span>    status.setStatus("Initializing MOB Cleaner");<a name="line.1090"></a>
+<span class="sourceLineNo">1091</span>    initMobCleaner();<a name="line.1091"></a>
+<span class="sourceLineNo">1092</span><a name="line.1092"></a>
+<span class="sourceLineNo">1093</span>    status.setStatus("Calling postStartMaster coprocessors");<a name="line.1093"></a>
+<span class="sourceLineNo">1094</span>    if (this.cpHost != null) {<a name="line.1094"></a>
+<span class="sourceLineNo">1095</span>      // don't let cp initialization errors kill the master<a name="line.1095"></a>
+<span class="sourceLineNo">1096</span>      try {<a name="line.1096"></a>
+<span class="sourceLineNo">1097</span>        this.cpHost.postStartMaster();<a name="line.1097"></a>
+<span class="sourceLineNo">1098</span>      } catch (IOException ioe) {<a name="line.1098"></a>
+<span class="sourceLineNo">1099</span>        LOG.error("Coprocessor postStartMaster() hook failed", ioe);<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><a name="line.1102"></a>
+<span class="sourceLineNo">1103</span>    zombieDetector.interrupt();<a name="line.1103"></a>
+<span class="sourceLineNo">1104</span><a name="line.1104"></a>
+<span class="sourceLineNo">1105</span>    /*<a name="line.1105"></a>
+<span class="sourceLineNo">1106</span>     * After master has started up, lets do balancer post startup initialization. Since this runs<a name="line.1106"></a>
+<span class="sourceLineNo">1107</span>     * in activeMasterManager thread, it should be fine.<a name="line.1107"></a>
+<span class="sourceLineNo">1108</span>     */<a name="line.1108"></a>
+<span class="sourceLineNo">1109</span>    long start = System.currentTimeMillis();<a name="line.1109"></a>
+<span class="sourceLineNo">1110</span>    this.balancer.postMasterStartupInitialize();<a name="line.1110"></a>
+<span class="sourceLineNo">1111</span>    if (LOG.isDebugEnabled()) {<a name="line.1111"></a>
+<span class="sourceLineNo">1112</span>      LOG.debug("Balancer post startup initialization complete, took " + (<a name="line.1112"></a>
+<span class="sourceLineNo">1113</span>          (System.currentTimeMillis() - start) / 1000) + " seconds");<a name="line.1113"></a>
+<span class="sourceLineNo">1114</span>    }<a name="line.1114"></a>
+<span class="sourceLineNo">1115</span>  }<a name="line.1115"></a>
+<span class="sourceLineNo">1116</span><a name="line.1116"></a>
+<span class="sourceLineNo">1117</span>  /**<a name="line.1117"></a>
+<span class="sourceLineNo">1118</span>   * Check hbase:meta is up and ready for reading. For use during Master startup only.<a name="line.1118"></a>
+<span class="sourceLineNo">1119</span>   * @return True if meta is UP and online and startup can progress. Otherwise, meta is not online<a name="line.1119"></a>
+<span class="sourceLineNo">1120</span>   *   and we will hold here until operator intervention.<a name="line.1120"></a>
+<span class="sourceLineNo">1121</span>   */<a name="line.1121"></a>
+<span class="sourceLineNo">1122</span>  @InterfaceAudience.Private<a name="line.1122"></a>
+<span class="sourceLineNo">1123</span>  public boolean waitForMetaOnline() {<a name="line.1123"></a>
+<span class="sourceLineNo">1124</span>    return isRegionOnline(RegionInfoBuilder.FIRST_META_REGIONINFO);<a name="line.1124"></a>
+<span class="sourceLineNo">1125</span>  }<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>   * @return True if region is online and scannable else false if an error or shutdown (Otherwise<a name="line.1128"></a>
+<span class="sourceLineNo">1129</span>   *   we just block in here holding up all forward-progess).<a name="line.1129"></a>
+<span class="sourceLineNo">1130</span>   */<a name="line.1130"></a>
+<span class="sourceLineNo">1131</span>  private boolean isRegionOnline(RegionInfo ri) {<a name="line.1131"></a>
+<span class="sourceLineNo">1132</span>    RetryCounter rc = null;<a name="line.1132"></a>
+<span class="sourceLineNo">1133</span>    while (!isStopped()) {<a name="line.1133"></a>
+<span class="sourceLineNo">1134</span>      RegionState rs = this.assignmentManager.getRegionStates().getRegionState(ri);<a name="line.1134"></a>
+<span class="sourceLineNo">1135</span>      if (rs.isOpened()) {<a name="line.1135"></a>
+<span class="sourceLineNo">1136</span>        if (this.getServerManager().isServerOnline(rs.getServerName())) {<a name="line.1136"></a>
+<span class="sourceLineNo">1137</span>          return true;<a name="line.1137"></a>
+<span class="sourceLineNo">1138</span>        }<a name="line.1138"></a>
+<span class="sourceLineNo">1139</span>      }<a name="line.1139"></a>
+<span class="sourceLineNo">1140</span>      // Region is not OPEN.<a name="line.1140"></a>
+<span class="sourceLineNo">1141</span>      Optional&lt;Procedure&lt;MasterProcedureEnv&gt;&gt; optProc = this.procedureExecutor.getProcedures().<a name="line.1141"></a>
+<span class="sourceLineNo">1142</span>          stream().filter(p -&gt; p instanceof ServerCrashProcedure).findAny();<a name="line.1142"></a>
+<span class="sourceLineNo">1143</span>      // TODO: Add a page to refguide on how to do repair. Have this log message point to it.<a name="line.1143"></a>
+<span class="sourceLineNo">1144</span>      // Page will talk about loss of edits, how to schedule at least the meta WAL recovery, and<a name="line.1144"></a>
+<span class="sourceLineNo">1145</span>      // then how to assign including how to break region lock if one held.<a name="line.1145"></a>
+<span class="sourceLineNo">1146</span>      LOG.warn("{} is NOT online; state={}; ServerCrashProcedures={}. Master startup cannot " +<a name="line.1146"></a>
+<span class="sourceLineNo">1147</span>          "progress, in holding-pattern until region onlined.",<a name="line.1147"></a>
+<span class="sourceLineNo">1148</span>          ri.getRegionNameAsString(), rs, optProc.isPresent());<a name="line.1148"></a>
+<span class="sourceLineNo">1149</span>      // Check once-a-minute.<a name="line.1149"></a>
+<span class="sourceLineNo">1150</span>      if (rc == null) {<a name="line.1150"></a>
+<span class="sourceLineNo">1151</span>        rc = new RetryCounterFactory(Integer.MAX_VALUE, 1000, 60_000).create();<a name="line.1151"></a>
+<span class="sourceLineNo">1152</span>      }<a name="line.1152"></a>
+<span class="sourceLineNo">1153</span>      Threads.sleep(rc.getBackoffTimeAndIncrementAttempts());<a name="line.1153"></a>
+<span class="sourceLineNo">1154</span>    }<a name="line.1154"></a>
+<span class="sourceLineNo">1155</span>    return false;<a name="line.1155"></a>
+<span class="sourceLineNo">1156</span>  }<a name="line.1156"></a>
+<span class="sourceLineNo">1157</span><a name="line.1157"></a>
+<span class="sourceLineNo">1158</span>  /**<a name="line.1158"></a>
+<span class="sourceLineNo">1159</span>   * Check hbase:namespace table is assigned. If not, startup will hang looking for the ns table<a name="line.1159"></a>
+<span class="sourceLineNo">1160</span>   * &lt;p/&gt;<a name="line.1160"></a>
+<span class="sourceLineNo">1161</span>   * This is for rolling upgrading, later we will migrate the data in ns table to the ns family of<a name="line.1161"></a>
+<span class="sourceLineNo">1162</span>   * meta table. And if this is a new cluster, this method will return immediately as there will be<a name="line.1162"></a>
+<span class="sourceLineNo">1163</span>   * no namespace table/region.<a name="line.1163"></a>
+<span class="sourceLineNo">1164</span>   * @return True if namespace table is up/online.<a name="line.1164"></a>
+<span class="sourceLineNo">1165</span>   */<a name="line.1165"></a>
+<span class="sourceLineNo">1166</span>  private boolean waitForNamespaceOnline() throws IOException {<a name="line.1166"></a>
+<span class="sourceLineNo">1167</span>    TableState nsTableState =<a name="line.1167"></a>
+<span class="sourceLineNo">1168</span>      MetaTableAccessor.getTableState(getConnection(), TableName.NAMESPACE_TABLE_NAME);<a name="line.1168"></a>
+<span class="sourceLineNo">1169</span>    if (nsTableState == null || nsTableState.isDisabled()) {<a name="line.1169"></a>
+<span class="sourceLineNo">1170</span>      // this means we have already migrated the data and disabled or deleted the namespace table,<a name="line.1170"></a>
+<span class="sourceLineNo">1171</span>      // or this is a new deploy which does not have a namespace table from the beginning.<a name="line.1171"></a>
+<span class="sourceLineNo">1172</span>      return true;<a name="line.1172"></a>
+<span class="sourceLineNo">1173</span>    }<a name="line.1173"></a>
+<span class="sourceLineNo">1174</span>    List&lt;RegionInfo&gt; ris =<a name="line.1174"></a>
+<span class="sourceLineNo">1175</span>      this.assignmentManager.getRegionStates().getRegionsOfTable(TableName.NAMESPACE_TABLE_NAME);<a name="line.1175"></a>
+<span class="sourceLineNo">1176</span>    if (ris.isEmpty()) {<a name="line.1176"></a>
+<span class="sourceLineNo">1177</span>      // maybe this will not happen any more, but anyway, no harm to add a check here...<a name="line.1177"></a>
+<span class="sourceLineNo">1178</span>      return true;<a name="line.1178"></a>
+<span class="sourceLineNo">1179</span>    }<a name="line.1179"></a>
+<span class="sourceLineNo">1180</span>    // Else there are namespace regions up in meta. Ensure they are assigned before we go on.<a name="line.1180"></a>
+<span class="sourceLineNo">1181</span>    for (RegionInfo ri : ris) {<a name="line.1181"></a>
+<span class="sourceLineNo">1182</span>      if (!isRegionOnline(ri)) {<a name="line.1182"></a>
+<span class="sourceLineNo">1183</span>        return false;<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>    return true;<a name="line.1186"></a>
+<span class="sourceLineNo">1187</span>  }<a name="line.1187"></a>
+<span class="sourceLineNo">1188</span><a name="line.1188"></a>
+<span class="sourceLineNo">1189</span>  /**<a name="line.1189"></a>
+<span class="sourceLineNo">1190</span>   * Adds the {@code MasterQuotasObserver} to the list of configured Master observers to<a name="line.1190"></a>
+<span class="sourceLineNo">1191</span>   * automatically remove quotas for a table when that table is deleted.<a name="line.1191"></a>
+<span class="sourceLineNo">1192</span>   */<a name="line.1192"></a>
+<span class="sourceLineNo">1193</span>  @InterfaceAudience.Private<a name="line.1193"></a>
+<span class="sourceLineNo">1194</span>  public void updateConfigurationForQuotasObserver(Configuration conf) {<a name="line.1194"></a>
+<span class="sourceLineNo">1195</span>    // We're configured to not delete quotas on table deletion, so we don't need to add the obs.<a name="line.1195"></a>
+<span class="sourceLineNo">1196</span>    if (!conf.getBoolean(<a name="line.1196"></a>
+<span class="sourceLineNo">1197</span>          MasterQuotasObserver.REMOVE_QUOTA_ON_TABLE_DELETE,<a name="line.1197"></a>
+<span class="sourceLineNo">1198</span>          MasterQuotasObserver.REMOVE_QUOTA_ON_TABLE_DELETE_DEFAULT)) {<a name="line.1198"></a>
+<span class="sourceLineNo">1199</span>      return;<a name="line.1199"></a>
+<span class="sourceLineNo">1200</span>    }<a name="line.1200"></a>
+<span class="sourceLineNo">1201</span>    String[] masterCoprocs = conf.getStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY);<a name="line.1201"></a>
+<span class="sourceLineNo">1202</span>    final int length = null == masterCoprocs ? 0 : masterCoprocs.length;<a name="line.1202"></a>
+<span class="sourceLineNo">1203</span>    String[] updatedCoprocs = new String[length + 1];<a name="line.1203"></a>
+<span class="sourceLineNo">1204</span>    if (length &gt; 0) {<a name="line.1204"></a>
+<span class="sourceLineNo">1205</span>      System.arraycopy(masterCoprocs, 0, updatedCoprocs, 0, masterCoprocs.length);<a name="line.1205"></a>
+<span class="sourceLineNo">1206</span>    }<a name="line.1206"></a>
+<span class="sourceLineNo">1207</span>    updatedCoprocs[length] = MasterQuotasObserver.class.getName();<a name="line.1207"></a>
+<span class="sourceLineNo">1208</span>    conf.setStrings(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY, updatedCoprocs);<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>  private void initMobCleaner() {<a name="line.1211"></a>
+<span class="sourceLineNo">1212</span>    this.mobFileCleanerChore = new MobFileCleanerChore(this);<a name="line.1212"></a>
+<span class="sourceLineNo">1213</span>    getChoreService().scheduleChore(mobFileCleanerChore);<a name="line.1213"></a>
+<span class="sourceLineNo">1214</span>    this.mobFileCompactionChore = new MobFileCompactionChore(this);<a name="line.1214"></a>
+<span class="sourceLineNo">1215</span>    getChoreService().scheduleChore(mobFileCompactionChore);<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>  /**<a name="line.1218"></a>
+<span class="sourceLineNo">1219</span>   * &lt;p&gt;<a name="line.1219"></a>
+<span class="sourceLineNo">1220</span>   * Create a {@link ServerManager} instance.<a name="line.1220"></a>
+<span class="sourceLineNo">1221</span>   * &lt;/p&gt;<a name="line.1221"></a>
+<span class="sourceLineNo">1222</span>   * &lt;p&gt;<a name="line.1222"></a>
+<span class="sourceLineNo">1223</span>   * Will be overridden in tests.<a name="line.1223"></a>
+<span class="sourceLineNo">1224</span>   * &lt;/p&gt;<a name="line.1224"></a>
+<span class="sourceLineNo">1225</span>   */<a name="line.1225"></a>
+<span class="sourceLineNo">1226</span>  @InterfaceAudience.Private<a name="line.1226"></a>
+<span class="sourceLineNo">1227</span>  protected ServerManager createServerManager(final MasterServices master) throws IOException {<a name="line.1227"></a>
+<span class="sourceLineNo">1228</span>    // We put this out here in a method so can do a Mockito.spy and stub it out<a name="line.1228"></a>
+<span class="sourceLineNo">1229</span>    // w/ a mocked up ServerManager.<a name="line.1229"></a>
+<span class="sourceLineNo">1230</span>    setupClusterConnection();<a name="line.1230"></a>
+<span class="sourceLineNo">1231</span>    return new ServerManager(master);<a name="line.1231"></a>
+<span class="sourceLineNo">1232</span>  }<a name="line.1232"></a>
+<span class="sourceLineNo">1233</span><a name="line.1233"></a>
+<span class="sourceLineNo">1234</span>  private void waitForRegionServers(final MonitoredTask status)<a name="line.1234"></a>
+<span class="sourceLineNo">1235</span>      throws IOException, InterruptedException {<a name="line.1235"></a>
+<span class="sourceLineNo">1236</span>    this.serverManager.waitForRegionServers(status);<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>  // Will be overridden in tests<a name="line.1239"></a>
+<span class="sourceLineNo">1240</span>  @InterfaceAudience.Private<a name="line.1240"></a>
+<span class="sourceLineNo">1241</span>  protected void initClusterSchemaService() throws IOException, InterruptedException {<a name="line.1241"></a>
+<span class="sourceLineNo">1242</span>    this.clusterSchemaService = new ClusterSchemaServiceImpl(this);<a name="line.1242"></a>
+<span class="sourceLineNo">1243</span>    this.clusterSchemaService.startAsync();<a name="line.1243"></a>
+<span class="sourceLineNo">1244</span>    try {<a name="line.1244"></a>
+<span class="sourceLineNo">1245</span>      this.clusterSchemaService.awaitRunning(getConfiguration().getInt(<a name="line.1245"></a>
+<span class="sourceLineNo">1246</span>        HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS,<a name="line.1246"></a>
+<span class="sourceLineNo">1247</span>        DEFAULT_HBASE_MASTER_WAIT_ON_SERVICE_IN_SECONDS), TimeUnit.SECONDS);<a name="line.1247"></a>
+<span class="sourceLineNo">1248</span>    } catch (TimeoutException toe) {<a name="line.1248"></a>
+<span class="sourceLineNo">1249</span>      throw new IOException("Timedout starting ClusterSchemaService", toe);<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><a name="line.1252"></a>
+<span class="sourceLineNo">1253</span>  private void initQuotaManager() throws IOException {<a name="line.1253"></a>
+<span class="sourceLineNo">1254</span>    MasterQuotaManager quotaManager = new MasterQuotaManager(this);<a name="line.1254"></a>
+<span class="sourceLineNo">1255</span>    quotaManager.start();<a name="line.1255"></a>
+<span class="sourceLineNo">1256</span>    this.quotaManager = quotaManager;<a name="line.1256"></a>
+<span class="sourceLineNo">1257</span>  }<a name="line.1257"></a>
+<span class="sourceLineNo">1258</span><a name="line.1258"></a>
+<span class="sourceLineNo">1259</span>  private SpaceQuotaSnapshotNotifier createQuotaSnapshotNotifier() {<a name="line.1259"></a>
+<span class="sourceLineNo">1260</span>    SpaceQuotaSnapshotNotifier notifier =<a name="line.1260"></a>
+<span class="sourceLineNo">1261</span>        SpaceQuotaSnapshotNotifierFactory.getInstance().create(getConfiguration());<a name="line.1261"></a>
+<span class="sourceLineNo">1262</span>    return notifier;<a name="line.1262"></a>
+<span class="sourceLineNo">1263</span>  }<a name="line.1263"></a>
+<span class="sourceLineNo">1264</span><a name="line.1264"></a>
+<span class="sourceLineNo">1265</span>  public boolean isCatalogJanitorEnabled() {<a name="line.1265"></a>
+<span class="sourceLineNo">1266</span>    return catalogJanitorChore != null ? catalogJanitorChore.getEnabled() : false;<a name="line.1266"></a>
+<span class="sourceLineNo">1267</span>  }<a name="line.1267"></a>
+<span class="sourceLineNo">1268</span><a name="line.1268"></a>
+<span class="sourceLineNo">1269</span>  boolean isCleanerChoreEnabled() {<a name="line.1269"></a>
+<span class="sourceLineNo">1270</span>    boolean hfileCleanerFlag = true, logCleanerFlag = true;<a name="line.1270"></a>
+<span class="sourceLineNo">1271</span><a name="line.1271"></a>
+<span class="sourceLineNo">1272</span>    if (hfileCleaner != null) {<a name="line.1272"></a>
+<span class="sourceLineNo">1273</span>      hfileCleanerFlag = hfileCleaner.getEnabled();<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>    if (logCleaner != null) {<a name="line.1276"></a>
+<span class="sourceLineNo">1277</span>      logCleanerFlag = logCleaner.getEnabled();<a name="line.1277"></a>
+<span class="sourceLineNo">1278</span>    }<a name="line.1278"></a>
+<span class="sourceLineNo">1279</span><a name="line.1279"></a>
+<span class="sourceLineNo">1280</span>    return (hfileCleanerFlag &amp;&amp; logCleanerFlag);<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>  @Override<a name="line.1283"></a>
+<span class="sourceLineNo">1284</span>  public ServerManager getServerManager() {<a name="line.1284"></a>
+<span class="sourceLineNo">1285</span>    return this.serverManager;<a name="line.1285"></a>
+<span class="sourceLineNo">1286</span>  }<a name="line.1286"></a>
+<span class="sourceLineNo">1287</span><a name="line.1287"></a>
+<span class="sourceLineNo">1288</span>  @Override<a name="line.1288"></a>
+<span class="sourceLineNo">1289</span>  public MasterFileSystem getMasterFileSystem() {<a name="line.1289"></a>
+<span class="sourceLineNo">1290</span>    return this.fileSystemManager;<a name="line.1290"></a>
+<span class="sourceLineNo">1291</span>  }<a name="line.1291"></a>
+<span class="sourceLineNo">1292</span><a name="line.1292"></a>
+<span class="sourceLineNo">1293</span>  @Override<a name="line.1293"></a>
+<span class="sourceLineNo">1294</span>  public MasterWalManager getMasterWalManager() {<a name="line.1294"></a>
+<span class="sourceLineNo">1295</span>    return this.walManager;<a name="line.1295"></a>
+<span class="sourceLineNo">1296</span>  }<a name="line.1296"></a>
+<span class="sourceLineNo">1297</span><a name="line.1297"></a>
+<span class="sourceLineNo">1298</span>  @Override<a name="line.1298"></a>
+<span class="sourceLineNo">1299</span>  public SplitWALManager getSplitWALManager() {<a name="line.1299"></a>
+<span class="sourceLineNo">1300</span>    return splitWALManager;<a name="line.1300"></a>
+<span class="sourceLineNo">1301</span>  }<a name="line.1301"></a>
+<span class="sourceLineNo">1302</span><a name="line.1302"></a>
+<span class="sourceLineNo">1303</span>  @Override<a name="line.1303"></a>
+<span class="sourceLineNo">1304</span>  public TableStateManager getTableStateManager() {<a name="line.1304"></a>
+<span class="sourceLineNo">1305</span>    return tableStateManager;<a name="line.1305"></a>
+<span class="sourceLineNo">1306</span>  }<a name="line.1306"></a>
+<span class="sourceLineNo">1307</span><a name="line.1307"></a>
+<span class="sourceLineNo">1308</span>  /*<a name="line.1308"></a>
+<span class="sourceLineNo">1309</span>   * Start up all services. If any of these threads gets an unhandled exception<a name="line.1309"></a>
+<span class="sourceLineNo">1310</span>   * then they just die with a logged message.  This should be fine because<a name="line.1310"></a>
+<span class="sourceLineNo">1311</span>   * in general, we do not expect the master to get such unhandled exceptions<a name="line.1311"></a>
+<span class="sourceLineNo">1312</span>   *  as OOMEs; it should be lightly loaded. See what HRegionServer does if<a name="line.1312"></a>
+<span class="sourceLineNo">1313</span>   *  need to install an unexpected exception handler.<a name="line.1313"></a>
+<span class="sourceLineNo">1314</span>   */<a name="line.1314"></a>
+<span class="sourceLineNo">1315</span>  private void startServiceThreads() throws IOException {<a name="line.1315"></a>
+<span class="sourceLineNo">1316</span>    // Start the executor service pools<a name="line.1316"></a>
+<span class="sourceLineNo">1317</span>    final int masterOpenRegionPoolSize = conf.getInt(<a name="line.1317"></a>
+<span class="sourceLineNo">1318</span>        HConstants.MASTER_OPEN_REGION_THREADS, HConstants.MASTER_OPEN_REGION_THREADS_DEFAULT);<a name="line.1318"></a>
+<span class="sourceLineNo">1319</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1319"></a>
+<span class="sourceLineNo">1320</span>        ExecutorType.MASTER_OPEN_REGION).setCorePoolSize(masterOpenRegionPoolSize));<a name="line.1320"></a>
+<span class="sourceLineNo">1321</span>    final int masterCloseRegionPoolSize = conf.getInt(<a name="line.1321"></a>
+<span class="sourceLineNo">1322</span>        HConstants.MASTER_CLOSE_REGION_THREADS, HConstants.MASTER_CLOSE_REGION_THREADS_DEFAULT);<a name="line.1322"></a>
+<span class="sourceLineNo">1323</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1323"></a>
+<span class="sourceLineNo">1324</span>        ExecutorType.MASTER_CLOSE_REGION).setCorePoolSize(masterCloseRegionPoolSize));<a name="line.1324"></a>
+<span class="sourceLineNo">1325</span>    final int masterServerOpThreads = conf.getInt(HConstants.MASTER_SERVER_OPERATIONS_THREADS,<a name="line.1325"></a>
+<span class="sourceLineNo">1326</span>        HConstants.MASTER_SERVER_OPERATIONS_THREADS_DEFAULT);<a name="line.1326"></a>
+<span class="sourceLineNo">1327</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1327"></a>
+<span class="sourceLineNo">1328</span>        ExecutorType.MASTER_SERVER_OPERATIONS).setCorePoolSize(masterServerOpThreads));<a name="line.1328"></a>
+<span class="sourceLineNo">1329</span>    final int masterServerMetaOpsThreads = conf.getInt(<a name="line.1329"></a>
+<span class="sourceLineNo">1330</span>        HConstants.MASTER_META_SERVER_OPERATIONS_THREADS,<a name="line.1330"></a>
+<span class="sourceLineNo">1331</span>        HConstants.MASTER_META_SERVER_OPERATIONS_THREADS_DEFAULT);<a name="line.1331"></a>
+<span class="sourceLineNo">1332</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1332"></a>
+<span class="sourceLineNo">1333</span>        ExecutorType.MASTER_META_SERVER_OPERATIONS).setCorePoolSize(masterServerMetaOpsThreads));<a name="line.1333"></a>
+<span class="sourceLineNo">1334</span>    final int masterLogReplayThreads = conf.getInt(<a name="line.1334"></a>
+<span class="sourceLineNo">1335</span>        HConstants.MASTER_LOG_REPLAY_OPS_THREADS, HConstants.MASTER_LOG_REPLAY_OPS_THREADS_DEFAULT);<a name="line.1335"></a>
+<span class="sourceLineNo">1336</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1336"></a>
+<span class="sourceLineNo">1337</span>        ExecutorType.M_LOG_REPLAY_OPS).setCorePoolSize(masterLogReplayThreads));<a name="line.1337"></a>
+<span class="sourceLineNo">1338</span>    final int masterSnapshotThreads = conf.getInt(<a name="line.1338"></a>
+<span class="sourceLineNo">1339</span>        SnapshotManager.SNAPSHOT_POOL_THREADS_KEY, SnapshotManager.SNAPSHOT_POOL_THREADS_DEFAULT);<a name="line.1339"></a>
+<span class="sourceLineNo">1340</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1340"></a>
+<span class="sourceLineNo">1341</span>        ExecutorType.MASTER_SNAPSHOT_OPERATIONS).setCorePoolSize(masterSnapshotThreads)<a name="line.1341"></a>
+<span class="sourceLineNo">1342</span>        .setAllowCoreThreadTimeout(true));<a name="line.1342"></a>
+<span class="sourceLineNo">1343</span>    final int masterMergeDispatchThreads = conf.getInt(HConstants.MASTER_MERGE_DISPATCH_THREADS,<a name="line.1343"></a>
+<span class="sourceLineNo">1344</span>        HConstants.MASTER_MERGE_DISPATCH_THREADS_DEFAULT);<a name="line.1344"></a>
+<span class="sourceLineNo">1345</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1345"></a>
+<span class="sourceLineNo">1346</span>        ExecutorType.MASTER_MERGE_OPERATIONS).setCorePoolSize(masterMergeDispatchThreads)<a name="line.1346"></a>
+<span class="sourceLineNo">1347</span>        .setAllowCoreThreadTimeout(true));<a name="line.1347"></a>
+<span class="sourceLineNo">1348</span><a name="line.1348"></a>
+<span class="sourceLineNo">1349</span>    // We depend on there being only one instance of this executor running<a name="line.1349"></a>
+<span class="sourceLineNo">1350</span>    // at a time. To do concurrency, would need fencing of enable/disable of<a name="line.1350"></a>
+<span class="sourceLineNo">1351</span>    // tables.<a name="line.1351"></a>
+<span class="sourceLineNo">1352</span>    // Any time changing this maxThreads to &gt; 1, pls see the comment at<a name="line.1352"></a>
+<span class="sourceLineNo">1353</span>    // AccessController#postCompletedCreateTableAction<a name="line.1353"></a>
+<span class="sourceLineNo">1354</span>    executorService.startExecutorService(executorService.new ExecutorConfig().setExecutorType(<a name="line.1354"></a>
+<span class="sourceLineNo">1355</span>        ExecutorType.MASTER_TABLE_OPERATIONS).setCorePoolSize(1));<a name="line.1355"></a>
+<span class="sourceLineNo">1356</span>    startProcedureExecutor();<a name="line.1356"></a>
+<span class="sourceLineNo">1357</span><a name="line.1357"></a>
+<span class="sourceLineNo">1358</span>    // Create cleaner thread pool<a name="line.1358"></a>
+<span class="sourceLineNo">1359</span>    cleanerPool = new DirScanPool(conf);<a name="line.1359"></a>
+<span class="sourceLineNo">1360</span>    Map&lt;String, Object&gt; params = new HashMap&lt;&gt;();<a name="line.1360"></a>
+<span class="sourceLineNo">1361</span>    params.put(MASTER, this);<a name="line.1361"></a>
+<span class="sourceLineNo">1362</span>    // Start log cleaner thread<a name="line.1362"></a>
+<span class="sourceLineNo">1363</span>    int cleanerInterval =<a name="line.1363"></a>
+<span class="sourceLineNo">1364</span>      conf.getInt(HBASE_MASTER_CLEANER_INTERVAL, DEFAULT_HBASE_MASTER_CLEANER_INTERVAL);<a name="line.1364"></a>
+<span class="sourceLineNo">1365</span>    this.logCleaner = new LogCleaner(cleanerInterval, this, conf,<a name="line.1365"></a>
+<span class="sourceLineNo">1366</span>      getMasterWalManager().getFileSystem(), getMasterWalManager().getOldLogDir(), cleanerPool, params);<a name="line.1366"></a>
+<span class="sourceLineNo">1367</span>    getChoreService().scheduleChore(logCleaner);<a name="line.1367"></a>
+<span class="sourceLineNo">1368</span><a name="line.1368"></a>
+<span class="sourceLineNo">1369</span>    // start the hfile archive cleaner thread<a name="line.1369"></a>
+<span class="sourceLineNo">1370</span>    Path archiveDir = HFileArchiveUtil.getArchivePath(conf);<a name="line.1370"></a>
+<span class="sourceLineNo">1371</span>    this.hfileCleaner = new HFileCleaner(cleanerInterval, this, conf,<a name="line.1371"></a>
+<span class="sourceLineNo">1372</span>      getMasterFileSystem().getFileSystem(), archiveDir, cleanerPool, params);<a name="line.1372"></a>
+<span class="sourceLineNo">1373</span>    getChoreService().scheduleChore(hfileCleaner);<a name="line.1373"></a>
+<span class="sourceLineNo">1374</span><a name="line.1374"></a>
+<span class="sourceLineNo">1375</span>    // Regions Reopen based on very high storeFileRefCount is considered enabled<a name="line.1375"></a>
+<span class="sourceLineNo">1376</span>    // only if hbase.regions.recovery.store.file.ref.count has value &gt; 0<a name="line.1376"></a>
+<span class="sourceLineNo">1377</span>    final int maxStoreFileRefCount = conf.getInt(<a name="line.1377"></a>
+<span class="sourceLineNo">1378</span>      HConstants.STORE_FILE_REF_COUNT_THRESHOLD,<a name="line.1378"></a>
+<span class="sourceLineNo">1379</span>      HConstants.DEFAULT_STORE_FILE_REF_COUNT_THRESHOLD);<a name="line.1379"></a>
+<span class="sourceLineNo">1380</span>    if (maxStoreFileRefCount &gt; 0) {<a name="line.1380"></a>
+<span class="sourceLineNo">1381</span>      this.regionsRecoveryChore = new RegionsRecoveryChore(this, conf, this);<a name="line.1381"></a>
+<span class="sourceLineNo">1382</span>      getChoreService().scheduleChore(this.regionsRecoveryChore);<a name="line.1382"></a>
+<span class="sourceLineNo">1383</span>    } else {<a name="line.1383"></a>
+<span class="sourceLineNo">1384</span>      LOG.info("Reopening regions with very high storeFileRefCount is disabled. " +<a name="line.1384"></a>
+<span class="sourceLineNo">1385</span>          "Provide threshold value &gt; 0 for {} to enable it.",<a name="line.1385"></a>
+<span class="sourceLineNo">1386</span>        HConstants.STORE_FILE_REF_COUNT_THRESHOLD);<a name="line.1386"></a>
+<span class="sourceLineNo">1387</span>    }<a name="line.1387"></a>
+<span class="sourceLineNo">1388</span><a name="line.1388"></a>
+<span class="sourceLineNo">1389</span>    this.regionsRecoveryConfigManager = new RegionsRecoveryConfigManager(this);<a name="line.1389"></a>
+<span class="sourceLineNo">1390</span><a name="line.1390"></a>
+<span class="sourceLineNo">1391</span>    replicationBarrierCleaner = new ReplicationBarrierCleaner(conf, this, getConnection(),<a name="line.1391"></a>
+<span class="sourceLineNo">1392</span>      replicationPeerManager);<a name="line.1392"></a>
+<span class="sourceLineNo">1393</span>    getChoreService().scheduleChore(replicationBarrierCleaner);<a name="line.1393"></a>
+<span class="sourceLineNo">1394</span><a name="line.1394"></a>
+<span class="sourceLineNo">1395</span>    final boolean isSnapshotChoreEnabled = this.snapshotCleanupTracker<a name="line.1395"></a>
+<span class="sourceLineNo">1396</span>        .isSnapshotCleanupEnabled();<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>    this.snapshotCleanerChore = new SnapshotCleanerChore(this, conf, getSnapshotManager());<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    if (isSnapshotChoreEnabled) {<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>      getChoreService().scheduleChore(this.snapshotCleanerChore);<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    } else {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      if (LOG.isTraceEnabled()) {<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>        LOG.trace("Snapshot Cleaner Chore is disabled. Not starting up the chore..");<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>      }<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>    }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    serviceStarted = true;<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    if (LOG.isTraceEnabled()) {<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>      LOG.trace("Started service threads");<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span>    }<a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  }<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span><a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>  @Override<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>  protected void stopServiceThreads() {<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>    if (masterJettyServer != null) {<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      LOG.info("Stopping master jetty server");<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>      try {<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>        masterJettyServer.stop();<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      } catch (Exception e) {<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>        LOG.error("Failed to stop master jetty server", e);<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      }<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
+<span class="sourceLineNo">1421</span>    stopChores();<a name="line.1421"></a>
+<span class="sourceLineNo">1422</span><a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>    super.stopServiceThreads();<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span>    if (cleanerPool != null) {<a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>      cleanerPool.shutdownNow();<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>      cleanerPool = null;<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>    }<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span><a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>    LOG.debug("Stopping service threads");<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>    // stop procedure executor prior to other services such as server manager and assignment<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>    // manager, as these services are important for some running procedures. See HBASE-24117 for<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    // example.<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>    stopProcedureExecutor();<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>    if (regionNormalizerManager != null) {<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>      regionNormalizerManager.stop();<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    }<a name="line.1438"></a>
+<span class="sourceLineNo">1439</span>    if (this.quotaManager != null) {<a name="line.1439"></a>
+<span class="sourceLineNo">1440</span>      this.quotaManager.stop();<a name="line.1440"></a>
+<span class="sourceLineNo">1441</span>    }<a name="line.1441"></a>
+<span class="sourceLineNo">1442</span><a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (this.activeMasterManager != null) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      this.activeMasterManager.stop();<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>    }<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    if (this.serverManager != null) {<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>      this.serverManager.stop();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>    }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span>    if (this.assignmentManager != null) {<a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>      this.assignmentManager.stop();<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>    }<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span><a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>    if (masterRegion != null) {<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span>      masterRegion.close(isAborted());<a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>    }<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>    if (this.walManager != null) {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>      this.walManager.stop();<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>    }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span>    if (this.fileSystemManager != null) {<a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>      this.fileSystemManager.stop();<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>    }<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>    if (this.mpmHost != null) {<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>      this.mpmHost.stop("server shutting down.");<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>    }<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>    if (this.regionServerTracker != null) {<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>      this.regionServerTracker.stop();<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><a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>  private void createProcedureExecutor() throws IOException {<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>    MasterProcedureEnv procEnv = new MasterProcedureEnv(this);<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>    procedureStore =<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>      new RegionProcedureStore(this, masterRegion, new MasterProcedureEnv.FsUtilsLeaseRecovery(this));<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>    procedureStore.registerListener(new ProcedureStoreListener() {<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span><a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>      @Override<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>      public void abortProcess() {<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>        abort("The Procedure Store lost the lease", null);<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span>      }<a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>    });<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span>    MasterProcedureScheduler procedureScheduler = procEnv.getProcedureScheduler();<a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>    procedureExecutor = new ProcedureExecutor&lt;&gt;(conf, procEnv, procedureStore, procedureScheduler);<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>    configurationManager.registerObserver(procEnv);<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span><a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>    int cpus = Runtime.getRuntime().availableProcessors();<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>    final int numThreads = conf.getInt(MasterProcedureConstants.MASTER_PROCEDURE_THREADS, Math.max(<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>      (cpus &gt; 0 ? cpus / 4 : 0), MasterProcedureConstants.DEFAULT_MIN_MASTER_PROCEDURE_THREADS));<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>    final boolean abortOnCorruption =<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span>      conf.getBoolean(MasterProcedureConstants.EXECUTOR_ABORT_ON_CORRUPTION,<a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>        MasterProcedureConstants.DEFAULT_EXECUTOR_ABORT_ON_CORRUPTION);<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>    procedureStore.start(numThreads);<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>    // Just initialize it but do not start the workers, we will start the workers later by calling<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>    // startProcedureExecutor. See the javadoc for finishActiveMasterInitialization for more<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>    // details.<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>    procedureExecutor.init(numThreads, abortOnCorruption);<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>    if (!procEnv.getRemoteDispatcher().start()) {<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>      throw new HBaseIOException("Failed start of remote dispatcher");<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>  private void startProcedureExecutor() throws IOException {<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>    procedureExecutor.startWorkers();<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>   * Turn on/off Snapshot Cleanup Chore<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   *<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @param on indicates whether Snapshot Cleanup Chore is to be run<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   */<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>  void switchSnapshotCleanup(final boolean on, final boolean synchronous) {<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>    if (synchronous) {<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>      synchronized (this.snapshotCleanerChore) {<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>        switchSnapshotCleanup(on);<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>      }<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>    } else {<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>      switchSnapshotCleanup(on);<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>  private void switchSnapshotCleanup(final boolean on) {<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>    try {<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>      snapshotCleanupTracker.setSnapshotCleanupEnabled(on);<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>      if (on) {<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>        getChoreService().scheduleChore(this.snapshotCleanerChore);<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>      } else {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>        this.snapshotCleanerChore.cancel();<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>      }<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>    } catch (KeeperException e) {<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>      LOG.error("Error updating snapshot cleanup mode to {}", on, e);<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><a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>  private void stopProcedureExecutor() {<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>    if (procedureExecutor != null) {<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>      configurationManager.deregisterObserver(procedureExecutor.getEnvironment());<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>      procedureExecutor.getEnvironment().getRemoteDispatcher().stop();<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>      procedureExecutor.stop();<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      procedureExecutor.join();<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>      procedureExecutor = null;<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>    if (procedureStore != null) {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      procedureStore.stop(isAborted());<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      procedureStore = null;<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><a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>  private void stopChores() {<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    if (getChoreService() != null) {<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span>      shutdownChore(mobFileCleanerChore);<a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>      shutdownChore(mobFileCompactionChore);<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      shutdownChore(balancerChore);<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      if (regionNormalizerManager != null) {<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>        shutdownChore(regionNormalizerManager.getRegionNormalizerChore());<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      }<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      shutdownChore(clusterStatusChore);<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      shutdownChore(catalogJanitorChore);<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      shutdownChore(clusterStatusPublisherChore);<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      shutdownChore(snapshotQuotaChore);<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      shutdownChore(logCleaner);<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      shutdownChore(hfileCleaner);<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      shutdownChore(replicationBarrierCleaner);<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      shutdownChore(snapshotCleanerChore);<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      shutdownChore(hbckChore);<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      shutdownChore(regionsRecoveryChore);<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>   * @return Get remote side's InetAddress<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>   */<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>  InetAddress getRemoteInetAddress(final int port,<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      final long serverStartCode) throws UnknownHostException {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>    // Do it out here in its own little method so can fake an address when<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    // mocking up in tests.<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>    InetAddress ia = RpcServer.getRemoteIp();<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span><a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>    // The call could be from the local regionserver,<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    // in which case, there is no remote address.<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>    if (ia == null &amp;&amp; serverStartCode == startcode) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      InetSocketAddress isa = rpcServices.getSocketAddress();<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      if (isa != null &amp;&amp; isa.getPort() == port) {<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>        ia = isa.getAddress();<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>    return ia;<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>  }<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span><a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>  /**<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>   * @return Maximum time we should run balancer for<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>   */<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>  private int getMaxBalancingTime() {<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    // if max balancing time isn't set, defaulting it to period time<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    int maxBalancingTime = getConfiguration().getInt(HConstants.HBASE_BALANCER_MAX_BALANCING,<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>      getConfiguration()<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>        .getInt(HConstants.HBASE_BALANCER_PERIOD, HConstants.DEFAULT_HBASE_BALANCER_PERIOD));<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>    return maxBalancingTime;<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>  }<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>   * @return Maximum number of regions in transition<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>   */<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>  private int getMaxRegionsInTransition() {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>    int numRegions = this.assignmentManager.getRegionStates().getRegionAssignments().size();<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>    return Math.max((int) Math.floor(numRegions * this.maxRitPercent), 1);<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>  }<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span><a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>  /**<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>   * It first sleep to the next balance plan start time. Meanwhile, throttling by the max<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>   * number regions in transition to protect availability.<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>   * @param nextBalanceStartTime The next balance plan start time<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>   * @param maxRegionsInTransition max number of regions in transition<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>   * @param cutoffTime when to exit balancer<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>   */<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>  private void balanceThrottling(long nextBalanceStartTime, int maxRegionsInTransition,<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>      long cutoffTime) {<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    boolean interrupted = false;<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span><a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    // Sleep to next balance plan start time<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>    // But if there are zero regions in transition, it can skip sleep to speed up.<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    while (!interrupted &amp;&amp; System.currentTimeMillis() &lt; nextBalanceStartTime<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>        &amp;&amp; this.assignmentManager.getRegionStates().hasRegionsInTransition()) {<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>      try {<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>        Thread.sleep(100);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>      } catch (InterruptedException ie) {<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>        interrupted = true;<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>    // Throttling by max number regions in transition<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>    while (!interrupted<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>        &amp;&amp; maxRegionsInTransition &gt; 0<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>        &amp;&amp; this.assignmentManager.getRegionStates().getRegionsInTransitionCount()<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>        &gt;= maxRegionsInTransition &amp;&amp; System.currentTimeMillis() &lt;= cutoffTime) {<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>      try {<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        // sleep if the number of regions in transition exceeds the limit<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        Thread.sleep(100);<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>      } catch (InterruptedException ie) {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>        interrupted = true;<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>    if (interrupted) Thread.currentThread().interrupt();<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>  }<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span><a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>  public boolean balance() throws IOException {<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>    return balance(false);<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>  }<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>   * Checks master state before initiating action over region topology.<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>   * @param action the name of the action under consideration, for logging.<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>   * @return {@code true} when the caller should exit early, {@code false} otherwise.<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>   */<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>  @Override<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>  public boolean skipRegionManagementAction(final String action) {<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>    // Note: this method could be `default` on MasterServices if but for logging.<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>    if (!isInitialized()) {<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>      LOG.debug("Master has not been initialized, don't run {}.", action);<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>      return true;<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>    }<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>    if (this.getServerManager().isClusterShutdown()) {<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>      LOG.info("Cluster is shutting down, don't run {}.", action);<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>      return true;<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>    if (isInMaintenanceMode()) {<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>      LOG.info("Master is in maintenance mode, don't run {}.", action);<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>      return true;<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>    }<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>    return false;<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>  }<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span><a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>  public boolean balance(boolean force) throws IOException {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>    if (loadBalancerTracker == null || !loadBalancerTracker.isBalancerOn()) {<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>      return false;<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>    }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>    if (skipRegionManagementAction("balancer")) {<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>      return false;<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>    }<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span><a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>    synchronized (this.balancer) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>        // Only allow one balance run at at time.<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>      if (this.assignmentManager.hasRegionsInTransition()) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>        List&lt;RegionStateNode&gt; regionsInTransition = assignmentManager.getRegionsInTransition();<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>        // if hbase:meta region is in transition, result of assignment cannot be recorded<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>        // ignore the force flag in that case<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        boolean metaInTransition = assignmentManager.isMetaRegionInTransition();<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>        String prefix = force &amp;&amp; !metaInTransition ? "R" : "Not r";<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        List&lt;RegionStateNode&gt; toPrint = regionsInTransition;<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>        int max = 5;<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>        boolean truncated = false;<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>        if (regionsInTransition.size() &gt; max) {<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>          toPrint = regionsInTransition.subList(0, max);<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>          truncated = true;<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>        }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>        LOG.info(prefix + " not running balancer because " + regionsInTransition.size() +<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>          " region(s) in transition: " + toPrint + (truncated? "(truncated list)": ""));<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>        if (!force || metaInTransition) return false;<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      if (this.serverManager.areDeadServersInProgress()) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.info("Not running balancer because processing dead regionserver(s): " +<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>          this.serverManager.getDeadServers());<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>        return false;<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span><a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      if (this.cpHost != null) {<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>        try {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>          if (this.cpHost.preBalance()) {<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>            LOG.debug("Coprocessor bypassing balancer request");<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>            return false;<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>          }<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>        } catch (IOException ioe) {<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>          LOG.error("Error invoking master coprocessor preBalance()", ioe);<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>          return false;<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>        }<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>      }<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span><a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>      Map&lt;TableName, Map&lt;ServerName, List&lt;RegionInfo&gt;&gt;&gt; assignments =<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>        this.assignmentManager.getRegionStates()<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>          .getAssignmentsForBalancer(tableStateManager, this.serverManager.getOnlineServersList());<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>      for (Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverMap : assignments.values()) {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>        serverMap.keySet().removeAll(this.serverManager.getDrainingServersList());<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>      }<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span><a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>      //Give the balancer the current cluster state.<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>      this.balancer.setClusterMetrics(getClusterMetricsWithoutCoprocessor());<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span><a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>      List&lt;RegionPlan&gt; plans = this.balancer.balanceCluster(assignments);<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span><a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>      if (skipRegionManagementAction("balancer")) {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>        // make one last check that the cluster isn't shutting down before proceeding.<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>        return false;<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>      }<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span><a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>      List&lt;RegionPlan&gt; sucRPs = executeRegionPlansWithThrottling(plans);<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span><a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      if (this.cpHost != null) {<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>        try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>          this.cpHost.postBalance(sucRPs);<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>        } catch (IOException ioe) {<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>          // balancing already succeeded so don't change the result<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>        }<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>      }<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>    }<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>    // Return true indicating a success.<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>    return true;<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>  }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>  /**<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>   * Execute region plans with throttling<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>   * @param plans to execute<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>   * @return succeeded plans<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>   */<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  public List&lt;RegionPlan&gt; executeRegionPlansWithThrottling(List&lt;RegionPlan&gt; plans) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>    List&lt;RegionPlan&gt; successRegionPlans = new ArrayList&lt;&gt;();<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>    int maxRegionsInTransition = getMaxRegionsInTransition();<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>    long balanceStartTime = System.currentTimeMillis();<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    long cutoffTime = balanceStartTime + this.maxBalancingTime;<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>    int rpCount = 0;  // number of RegionPlans balanced so far<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>    if (plans != null &amp;&amp; !plans.isEmpty()) {<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>      int balanceInterval = this.maxBalancingTime / plans.size();<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>      LOG.info("Balancer plans size is " + plans.size() + ", the balance interval is "<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>          + balanceInterval + " ms, and the max number regions in transition is "<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>          + maxRegionsInTransition);<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span><a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      for (RegionPlan plan: plans) {<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        LOG.info("balance " + plan);<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        //TODO: bulk assign<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        try {<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          this.assignmentManager.balance(plan);<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>        } catch (HBaseIOException hioe) {<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          //should ignore failed plans here, avoiding the whole balance plans be aborted<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>          //later calls of balance() can fetch up the failed and skipped plans<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>          LOG.warn("Failed balance plan {}, skipping...", plan, hioe);<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>        }<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>        //rpCount records balance plans processed, does not care if a plan succeeds<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        rpCount++;<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>        successRegionPlans.add(plan);<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span><a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>        if (this.maxBalancingTime &gt; 0) {<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>            cutoffTime);<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>        }<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span><a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>        // if performing next balance exceeds cutoff time, exit the loop<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>        if (this.maxBalancingTime &gt; 0 &amp;&amp; rpCount &lt; plans.size()<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>          &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>          // a security net for now)<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>          LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>              + this.maxBalancingTime);<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>          break;<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>        }<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>      }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>    }<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>    return successRegionPlans;<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>  }<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span><a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>  @Override<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>  public RegionNormalizerManager getRegionNormalizerManager() {<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    return regionNormalizerManager;<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>  }<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span><a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  @Override<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>  public boolean normalizeRegions(<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>    final NormalizeTableFilterParams ntfp,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>    final boolean isHighPriority<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>  ) throws IOException {<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>    if (regionNormalizerManager == null || !regionNormalizerManager.isNormalizerOn()) {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>      return false;<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>    }<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>    if (skipRegionManagementAction("region normalizer")) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>      return false;<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>    }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>    if (assignmentManager.hasRegionsInTransition()) {<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>      return false;<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>    }<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span><a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    final Set&lt;TableName&gt; matchingTables = getTableDescriptors(new LinkedList&lt;&gt;(),<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>      ntfp.getNamespace(), ntfp.getRegex(), ntfp.getTableNames(), false)<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>      .stream()<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>      .map(TableDescriptor::getTableName)<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      .collect(Collectors.toSet());<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>    final Set&lt;TableName&gt; allEnabledTables =<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>      tableStateManager.getTablesInStates(TableState.State.ENABLED);<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>    final List&lt;TableName&gt; targetTables =<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      new ArrayList&lt;&gt;(Sets.intersection(matchingTables, allEnabledTables));<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    Collections.shuffle(targetTables);<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>    return regionNormalizerManager.normalizeRegions(targetTables, isHighPriority);<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  }<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span><a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>  /**<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   */<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  @Override<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>  public String getClientIdAuditPrefix() {<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>  }<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span><a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>  /**<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>   * Switch for the background CatalogJanitor thread.<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>   * if disabled.<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>   */<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>  }<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span><a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>  @Override<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>  public long mergeRegions(<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span>      final RegionInfo[] regionsToMerge,<a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>      final boolean forcible,<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>      final long ng,<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>      final long nonce) throws IOException {<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>    checkInitialized();<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span><a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>    if (!isSplitOrMergeEnabled(MasterSwitchType.MERGE)) {<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>      String regionsStr = Arrays.deepToString(regionsToMerge);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>      LOG.warn("Merge switch is off! skip merge of " + regionsStr);<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>      throw new DoNotRetryIOException("Merge of " + regionsStr +<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>          " failed because merge switch is off");<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>    }<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span><a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>    final String mergeRegionsStr = Arrays.stream(regionsToMerge).map(RegionInfo::getEncodedName)<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>      .collect(Collectors.joining(", "));<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>    return MasterProcedureUtil.submitProcedure(new NonceProcedureRunnable(this, ng, nonce) {<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span>      @Override<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>      protected void run() throws IOException {<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>        String aid = getClientIdAuditPrefix();<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>        LOG.info("{} merge regions {}", aid, mergeRegionsStr);<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>            regionsToMerge, forcible));<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      }<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span><a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>      @Override<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>      protected String getDescription() {<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span>        return "MergeTableProcedure";<a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>      }<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    });<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>  }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>  @Override<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>      final long nonceGroup, final long nonce)<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>  throws IOException {<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    checkInitialized();<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span><a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>    if (!isSplitOrMergeEnabled(MasterSwitchType.SPLIT)) {<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>      LOG.warn("Split switch is off! skip split of " + regionInfo);<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>      throw new DoNotRetryIOException("Split region " + regionInfo.getRegionNameAsString() +<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>          " failed due to split switch off");<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>    }<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span><a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>      @Override<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>      protected void run() throws IOException {<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span><a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        // Execute the operation asynchronously<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>      }<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span><a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>      @Override<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>      protected String getDescription() {<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>        return "SplitTableProcedure";<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>      }<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>    });<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>  }<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span><a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>  private void warmUpRegion(ServerName server, RegionInfo region) {<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    FutureUtils.addListener(asyncClusterConnection.getRegionServerAdmin(server)<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>      .warmupRegion(RequestConverter.buildWarmupRegionRequest(region)), (r, e) -&gt; {<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>        if (e != null) {<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>          LOG.warn("Failed to warm up region {} on server {}", region, server, e);<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>        }<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>      });<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>  }<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span><a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>  // Replace with an async implementation from which you can get<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>  // a success/failure result.<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>  @InterfaceAudience.Private<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws IOException {<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span><a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>    RegionInfo hri;<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>    if (regionState != null) {<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>      hri = regionState.getRegion();<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>    } else {<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>    }<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span><a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>    ServerName dest;<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>        : new ArrayList&lt;&gt;(1);<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>      LOG.info(<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>              + " because the server is in exclude list");<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>      destServerName = null;<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>    }<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>        "choosing a server at random");<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>      exclude.add(regionState.getServerName());<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>      if (dest == null) {<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>        return;<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      }<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>    } else {<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      if (dest == null) {<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>        return;<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span>      }<a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      // TODO: deal with table on master for rs group.<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>      if (dest.equals(serverName)) {<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>        // regions on master.<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString() +<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>          " to avoid unnecessary region moving later by load balancer," +<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>          " because it should not be on master");<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>        return;<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      }<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    }<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span><a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>      return;<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>    }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span><a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>    // Now we can do the move<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>    try {<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      checkInitialized();<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      if (this.cpHost != null) {<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>      }<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span><a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>      TransitRegionStateProcedure proc =<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>        this.assignmentManager.createMoveRegionProcedure(rp.getRegionInfo(), rp.getDestination());<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>      // Warmup the region on the destination before initiating the move.<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>      // A region server could reject the close request because it either does not<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      // have the specified region or the region is being split.<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>      warmUpRegion(rp.getDestination(), hri);<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>      Future&lt;byte[]&gt; future = ProcedureSyncWait.submitProcedure(this.procedureExecutor, proc);<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>      try {<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>        // Is this going to work? Will we throw exception on error?<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span>        future.get();<a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span>        throw new HBaseIOException(e);<a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>      }<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>      if (this.cpHost != null) {<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>      }<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>    } catch (IOException ioe) {<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>      if (ioe instanceof HBaseIOException) {<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>        throw (HBaseIOException)ioe;<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>      }<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>      throw new HBaseIOException(ioe);<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span>    }<a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>  }<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span><a name="line.2024"></a>
-<span class="sourceLineNo">2025</span>  @Override<a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>  public long createTable(final TableDescriptor tableDescriptor, final byte[][] splitKeys,<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>      final long nonceGroup, final long nonce) throws IOException {<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>    checkInitialized();<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>    TableDescriptor desc = getMasterCoprocessorHost().preCreateTableRegionsInfos(tableDescriptor);<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>    if (desc == null) {<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>      throw new IOException("Creation for " + tableDescriptor + " is canceled by CP");<a name="line.2031"></a>
-<span class="sourceLineNo">2032</span>    }<a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>    String namespace = desc.getTableName().getNamespaceAsString();<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span><a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(desc, splitKeys);<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>    TableDescriptorChecker.sanityCheck(conf, desc);<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span><a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>    return MasterProcedureUtil<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>      .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>        @Override<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>        protected void run() throws IOException {<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>          getMaster().getMasterCoprocessorHost().preCreateTable(desc, newRegions);<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>          LOG.info(getClientIdAuditPrefix() + " create " + desc);<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span><a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>          // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span>          // TableExistsException by saying if the schema is the same or not.<a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>          //<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>          // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>          // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>          ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2052"></a>
-<span class="sourceLineNo">2053</span>          submitProcedure(<a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>            new CreateTableProcedure(procedureExecutor.getEnvironment(), desc, newRegions, latch));<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>          latch.await();<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span><a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>          getMaster().getMasterCoprocessorHost().postCreateTable(desc, newRegions);<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>        }<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span><a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>        @Override<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>        protected String getDescription() {<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>          return "CreateTableProcedure";<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>        }<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>      });<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>  }<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span><a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>  @Override<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>    if (isStopped()) {<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      throw new MasterNotRunningException();<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>    }<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span><a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>    if (!(tableName.isSystemTable())) {<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>      throw new IllegalArgumentException(<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>        "Only system table creation can use this createSystemTable API");<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>    }<a name="line.2077"></a>
-<span class="sourceLineNo">2078</span><a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span><a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span><a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>    // to use nonce to detect duplicated RPC call.<a name="line.2084"></a>
-<span class="sourceLineNo">2085</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2086"></a>
-<span class="sourceLineNo">2087</span><a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>    return procId;<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>  }<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span><a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>  private void startActiveMasterManager(int infoPort) throws KeeperException {<a name="line.2091"></a>
-<span class="sourceLineNo">2092</span>    String backupZNode = ZNodePaths.joinZNode(<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>      zooKeeper.getZNodePaths().backupMasterAddressesZNode, serverName.toString());<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>    /*<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>    * Add a ZNode for ourselves in the backup master directory since we<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>    * may not become the active master. If so, we want the actual active<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>    * master to know we are backup masters, so that it won't assign<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>    * regions to us if so configured.<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span>    *<a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>    * If we become the active master later, ActiveMasterManager will delete<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>    * this node explicitly.  If we crash before then, ZooKeeper will delete<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>    * this node for us since it is ephemeral.<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    */<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>    LOG.info("Adding backup master ZNode " + backupZNode);<a name="line.2104"></a>
-<span class="sourceLineNo">2105</span>    if (!MasterAddressTracker.setMasterAddress(zooKeeper, backupZNode, serverName, infoPort)) {<a name="line.2105"></a>
-<span class="sourceLineNo">2106</span>      LOG.warn("Failed create of " + backupZNode + " by " + serverName);<a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>    }<a name="line.2107"></a>
-<span class="sourceLineNo">2108</span>    this.activeMasterManager.setInfoPort(infoPort);<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>    int timeout = conf.getInt(HConstants.ZK_SESSION_TIMEOUT, HConstants.DEFAULT_ZK_SESSION_TIMEOUT);<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>    // If we're a backup master, stall until a primary to write this address<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>    if (conf.getBoolean(HConstants.MASTER_TYPE_BACKUP, HConstants.DEFAULT_MASTER_TYPE_BACKUP)) {<a name="line.2111"></a>
-<span class="sourceLineNo">2112</span>      LOG.debug("HMaster started in backup mode. Stalling until master znode is written.");<a name="line.2112"></a>
-<span class="sourceLineNo">2113</span>      // This will only be a minute or so while the cluster starts up,<a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>      // so don't worry about setting watches on the parent znode<a name="line.2114"></a>
-<span class="sourceLineNo">2115</span>      while (!activeMasterManager.hasActiveMaster()) {<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>        LOG.debug("Waiting for master address and cluster state znode to be written.");<a name="line.2116"></a>
-<span class="sourceLineNo">2117</span>        Threads.sleep(timeout);<a name="line.2117"></a>
-<span class="sourceLineNo">2118</span>      }<a name="line.2118"></a>
-<span class="sourceLineNo">2119</span>    }<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>    MonitoredTask status = TaskMonitor.get().createStatus("Master startup");<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>    status.setDescription("Master startup");<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>    try {<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>      if (activeMasterManager.blockUntilBecomingActiveMaster(timeout, status)) {<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>        finishActiveMasterInitialization(status);<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>      }<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>    } catch (Throwable t) {<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>      status.setStatus("Failed to become active: " + t.getMessage());<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      LOG.error(HBaseMarkers.FATAL, "Failed to become active master", t);<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      // HBASE-5680: Likely hadoop23 vs hadoop 20.x/1.x incompatibility<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>      if (t instanceof NoClassDefFoundError &amp;&amp; t.getMessage().<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span>          contains("org/apache/hadoop/hdfs/protocol/HdfsConstants$SafeModeAction")) {<a name="line.2131"></a>
-<span class="sourceLineNo">2132</span>        // improved error message for this special case<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>        abort("HBase is having a problem with its Hadoop jars.  You may need to recompile " +<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>          "HBase against Hadoop version " + org.apache.hadoop.util.VersionInfo.getVersion() +<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>          " or change your hadoop jars to start properly", t);<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>      } else {<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span>        abort("Unhandled exception. Starting shutdown.", t);<a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>      }<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>    } finally {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>      status.cleanup();<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>    }<a name="line.2141"></a>
-<span class="sourceLineNo">2142</span>  }<a name="line.2142"></a>
-<span class="sourceLineNo">2143</span><a name="line.2143"></a>
-<span class="sourceLineNo">2144</span>  private static boolean isCatalogTable(final TableName tableName) {<a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>    return tableName.equals(TableName.META_TABLE_NAME);<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>  }<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span><a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>  @Override<a name="line.2148"></a>
-<span class="sourceLineNo">2149</span>  public long deleteTable(<a name="line.2149"></a>
-<span class="sourceLineNo">2150</span>      final TableName tableName,<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span>      final long nonceGroup,<a name="line.2151"></a>
-<span class="sourceLineNo">2152</span>      final long nonce) throws IOException {<a name="line.2152"></a>
-<span class="sourceLineNo">2153</span>    checkInitialized();<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span><a name="line.2154"></a>
-<span class="sourceLineNo">2155</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span>      @Override<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span>      protected void run() throws IOException {<a name="line.2158"></a>
-<span class="sourceLineNo">2159</span>        getMaster().getMasterCoprocessorHost().preDeleteTable(tableName);<a name="line.2159"></a>
-<span class="sourceLineNo">2160</span><a name="line.2160"></a>
-<span class="sourceLineNo">2161</span>        LOG.info(getClientIdAuditPrefix() + " delete " + tableName);<a name="line.2161"></a>
-<span class="sourceLineNo">2162</span><a name="line.2162"></a>
-<span class="sourceLineNo">2163</span>        // TODO: We can handle/merge duplicate request<a name="line.2163"></a>
-<span class="sourceLineNo">2164</span>        //<a name="line.2164"></a>
-<span class="sourceLineNo">2165</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2165"></a>
-<span class="sourceLineNo">2166</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2166"></a>
-<span class="sourceLineNo">2167</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2167"></a>
-<span class="sourceLineNo">2168</span>        submitProcedure(new DeleteTableProcedure(procedureExecutor.getEnvironment(),<a name="line.2168"></a>
-<span class="sourceLineNo">2169</span>            tableName, latch));<a name="line.2169"></a>
-<span class="sourceLineNo">2170</span>        latch.await();<a name="line.2170"></a>
-<span class="sourceLineNo">2171</span><a name="line.2171"></a>
-<span class="sourceLineNo">2172</span>        getMaster().getMasterCoprocessorHost().postDeleteTable(tableName);<a name="line.2172"></a>
-<span class="sourceLineNo">2173</span>      }<a name="line.2173"></a>
-<span class="sourceLineNo">2174</span><a name="line.2174"></a>
-<span class="sourceLineNo">2175</span>      @Override<a name="line.2175"></a>
-<span class="sourceLineNo">2176</span>      protected String getDescription() {<a name="line.2176"></a>
-<span class="sourceLineNo">2177</span>        return "DeleteTableProcedure";<a name="line.2177"></a>
-<span class="sourceLineNo">2178</span>      }<a name="line.2178"></a>
-<span class="sourceLineNo">2179</span>    });<a name="line.2179"></a>
-<span class="sourceLineNo">2180</span>  }<a name="line.2180"></a>
-<span class="sourceLineNo">2181</span><a name="line.2181"></a>
-<span class="sourceLineNo">2182</span>  @Override<a name="line.2182"></a>
-<span class="sourceLineNo">2183</span>  public long truncateTable(<a name="line.2183"></a>
-<span class="sourceLineNo">2184</span>      final TableName tableName,<a name="line.2184"></a>
-<span class="sourceLineNo">2185</span>      final boolean preserveSplits,<a name="line.2185"></a>
-<span class="sourceLineNo">2186</span>      final long nonceGroup,<a name="line.2186"></a>
-<span class="sourceLineNo">2187</span>      final long nonce) throws IOException {<a name="line.2187"></a>
-<span class="sourceLineNo">2188</span>    checkInitialized();<a name="line.2188"></a>
-<span class="sourceLineNo">2189</span><a name="line.2189"></a>
-<span class="sourceLineNo">2190</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2190"></a>
-<span class="sourceLineNo">2191</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2191"></a>
-<span class="sourceLineNo">2192</span>      @Override<a name="line.2192"></a>
-<span class="sourceLineNo">2193</span>      protected void run() throws IOException {<a name="line.2193"></a>
-<span class="sourceLineNo">2194</span>        getMaster().getMasterCoprocessorHost().preTruncateTable(tableName);<a name="line.2194"></a>
-<span class="sourceLineNo">2195</span><a name="line.2195"></a>
-<span class="sourceLineNo">2196</span>        LOG.info(getClientIdAuditPrefix() + " truncate " + tableName);<a name="line.2196"></a>
-<span class="sourceLineNo">2197</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createLatch(2, 0);<a name="line.2197"></a>
-<span class="sourceLineNo">2198</span>        submitProcedure(new TruncateTableProcedure(procedureExecutor.getEnvironment(),<a name="line.2198"></a>
-<span class="sourceLineNo">2199</span>            tableName, preserveSplits, latch));<a name="line.2199"></a>
-<span class="sourceLineNo">2200</span>        latch.await();<a name="line.2200"></a>
-<span class="sourceLineNo">2201</span><a name="line.2201"></a>
-<span class="sourceLineNo">2202</span>        getMaster().getMasterCoprocessorHost().postTruncateTable(tableName);<a name="line.2202"></a>
-<span class="sourceLineNo">2203</span>      }<a name="line.2203"></a>
-<span class="sourceLineNo">2204</span><a name="line.2204"></a>
-<span class="sourceLineNo">2205</span>      @Override<a name="line.2205"></a>
-<span class="sourceLineNo">2206</span>      protected String getDescription() {<a name="line.2206"></a>
-<span class="sourceLineNo">2207</span>        return "TruncateTableProcedure";<a name="line.2207"></a>
-<span class="sourceLineNo">2208</span>      }<a name="line.2208"></a>
-<span class="sourceLineNo">2209</span>    });<a name="line.2209"></a>
-<span class="sourceLineNo">2210</span>  }<a name="line.2210"></a>
-<span class="sourceLineNo">2211</span><a name="line.2211"></a>
-<span class="sourceLineNo">2212</span>  @Override<a name="line.2212"></a>
-<span class="sourceLineNo">2213</span>  public long addColumn(final TableName tableName, final ColumnFamilyDescriptor column,<a name="line.2213"></a>
-<span class="sourceLineNo">2214</span>      final long nonceGroup, final long nonce) throws IOException {<a name="line.2214"></a>
-<span class="sourceLineNo">2215</span>    checkInitialized();<a name="line.2215"></a>
-<span class="sourceLineNo">2216</span>    checkTableExists(tableName);<a name="line.2216"></a>
-<span class="sourceLineNo">2217</span><a name="line.2217"></a>
-<span class="sourceLineNo">2218</span>    return modifyTable(tableName, new TableDescriptorGetter() {<a name="line.2218"></a>
-<span class="sourceLineNo">2219</span><a name="line.2219"></a>
-<span class="sourceLineNo">2220</span>      @Override<a name="line.2220"></a>
-<span class="sourceLineNo">2221</span>      public TableDescriptor get() throws IOException {<a name="line.2221"></a>
-<span class="sourceLineNo">2222</span>        TableDescriptor old = getTableDescriptors().get(tableName);<a name="line.2222"></a>
-<span class="sourceLineNo">2223</span>        if (old.hasColumnFamily(column.getName())) {<a name="line.2223"></a>
-<span class="sourceLineNo">2224</span>          throw new InvalidFamilyOperationException("Column family '" + column.getNameAsString()<a name="line.2224"></a>
-<span class="sourceLineNo">2225</span>              + "' in table '" + tableName + "' already exists so cannot be added");<a name="line.2225"></a>
-<span class="sourceLineNo">2226</span>        }<a name="line.2226"></a>
-<span class="sourceLineNo">2227</span><a name="line.2227"></a>
-<span class="sourceLineNo">2228</span>        return TableDescriptorBuilder.newBuilder(old).setColumnFamily(column).build();<a name="line.2228"></a>
-<span class="sourceLineNo">2229</span>      }<a name="line.2229"></a>
-<span class="sourceLineNo">2230</span>    }, nonceGroup, nonce, true);<a name="line.2230"></a>
-<span class="sourceLineNo">2231</span>  }<a name="line.2231"></a>
-<span class="sourceLineNo">2232</span><a name="line.2232"></a>
-<span class="sourceLineNo">2233</span>  /**<a name="line.2233"></a>
-<span class="sourceLineNo">2234</span>   * Implement to return TableDescriptor after pre-checks<a name="line.2234"></a>
-<span class="sourceLineNo">2235</span>   */<a name="line.2235"></a>
-<span class="sourceLineNo">2236</span>  protected interface TableDescriptorGetter {<a name="line.2236"></a>
-<span class="sourceLineNo">2237</span>    TableDescriptor get() throws IOException;<a name="line.2237"></a>
-<span class="sourceLineNo">2238</span>  }<a name="line.2238"></a>
-<span class="sourceLineNo">2239</span><a name="line.2239"></a>
-<span class="sourceLineNo">2240</span>  @Override<a name="line.2240"></a>
-<span class="sourceLineNo">2241</span>  public long modifyColumn(final TableName tableName, final ColumnFamilyDescriptor descriptor,<a name="line.2241"></a>
-<span class="sourceLineNo">2242</span>      final long nonceGroup, final long nonce) throws IOException {<a name="line.2242"></a>
-<span class="sourceLineNo">2243</span>    checkInitialized();<a name="line.2243"></a>
-<span class="sourceLineNo">2244</span>    checkTableExists(tableName);<a name="line.2244"></a>
-<span class="sourceLineNo">2245</span>    return modifyTable(tableName, new TableDescriptorGetter() {<a name="line.2245"></a>
-<span class="sourceLineNo">2246</span><a name="line.2246"></a>
-<span class="sourceLineNo">2247</span>      @Override<a name="line.2247"></a>
-<span class="sourceLineNo">2248</span>      public TableDescriptor get() throws IOException {<a name="line.2248"></a>
-<span class="sourceLineNo">2249</span>        TableDescriptor old = getTableDescriptors().get(tableName);<a name="line.2249"></a>
-<span class="sourceLineNo">2250</span>        if (!old.hasColumnFamily(descriptor.getName())) {<a name="line.2250"></a>
-<span class="sourceLineNo">2251</span>          throw new InvalidFamilyOperationException("Family '" + descriptor.getNameAsString()<a name="line.2251"></a>
-<span class="sourceLineNo">2252</span>              + "' does not exist, so it cannot be modified");<a name="line.2252"></a>
-<span class="sourceLineNo">2253</span>        }<a name="line.2253"></a>
-<span class="sourceLineNo">2254</span><a name="line.2254"></a>
-<span class="sourceLineNo">2255</span>        return TableDescriptorBuilder.newBuilder(old).modifyColumnFamily(descriptor).build();<a name="line.2255"></a>
-<span class="sourceLineNo">2256</span>      }<a name="line.2256"></a>
-<span class="sourceLineNo">2257</span>    }, nonceGroup, nonce, true);<a name="line.2257"></a>
-<span class="sourceLineNo">2258</span>  }<a name="line.2258"></a>
-<span class="sourceLineNo">2259</span><a name="line.2259"></a>
-<span class="sourceLineNo">2260</span>  @Override<a name="line.2260"></a>
-<span class="sourceLineNo">2261</span>  public long deleteColumn(final TableName tableName, final byte[] columnName,<a name="line.2261"></a>
-<span class="sourceLineNo">2262</span>      final long nonceGroup, final long nonce) throws IOException {<a name="line.2262"></a>
-<span class="sourceLineNo">2263</span>    checkInitialized();<a name="line.2263"></a>
-<span class="sourceLineNo">2264</span>    checkTableExists(tableName);<a name="line.2264"></a>
-<span class="sourceLineNo">2265</span><a name="line.2265"></a>
-<span class="sourceLineNo">2266</span>    return modifyTable(tableName, new TableDescriptorGetter() {<a name="line.2266"></a>
-<span class="sourceLineNo">2267</span><a name="line.2267"></a>
-<span class="sourceLineNo">2268</span>      @Override<a name="line.2268"></a>
-<span class="sourceLineNo">2269</span>      public TableDescriptor get() throws IOException {<a name="line.2269"></a>
-<span class="sourceLineNo">2270</span>        TableDescriptor old = getTableDescriptors().get(tableName);<a name="line.2270"></a>
-<span class="sourceLineNo">2271</span><a name="line.2271"></a>
-<span class="sourceLineNo">2272</span>        if (!old.hasColumnFamily(columnName)) {<a name="line.2272"></a>
-<span class="sourceLineNo">2273</span>          throw new InvalidFamilyOperationException("Family '" + Bytes.toString(columnName)<a name="line.2273"></a>
-<span class="sourceLineNo">2274</span>              + "' does not exist, so it cannot be deleted");<a name="line.2274"></a>
-<span class="sourceLineNo">2275</span>        }<a name="line.2275"></a>
-<span class="sourceLineNo">2276</span>        if (old.getColumnFamilyCount() == 1) {<a name="line.2276"></a>
-<span class="sourceLineNo">2277</span>          throw new InvalidFamilyOperationException("Family '" + Bytes.toString(columnName)<a name="line.2277"></a>
-<span class="sourceLineNo">2278</span>              + "' is the only column family in the table, so it cannot be deleted");<a name="line.2278"></a>
-<span class="sourceLineNo">2279</span>        }<a name="line.2279"></a>
-<span class="sourceLineNo">2280</span>        return TableDescriptorBuilder.newBuilder(old).removeColumnFamily(columnName).build();<a name="line.2280"></a>
-<span class="sourceLineNo">2281</span>      }<a name="line.2281"></a>
-<span class="sourceLineNo">2282</span>    }, nonceGroup, nonce, true);<a name="line.2282"></a>
-<span class="sourceLineNo">2283</span>  }<a name="line.2283"></a>
-<span class="sourceLineNo">2284</span><a name="line.2284"></a>
-<span class="sourceLineNo">2285</span>  @Override<a name="line.2285"></a>
-<span class="sourceLineNo">2286</span>  public long enableTable(final TableName tableName, final long nonceGroup, final long nonce)<a name="line.2286"></a>
-<span class="sourceLineNo">2287</span>      throws IOException {<a name="line.2287"></a>
-<span class="sourceLineNo">2288</span>    checkInitialized();<a name="line.2288"></a>
-<span class="sourceLineNo">2289</span><a name="line.2289"></a>
-<span class="sourceLineNo">2290</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2290"></a>
-<span class="sourceLineNo">2291</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2291"></a>
-<span class="sourceLineNo">2292</span>      @Override<a name="line.2292"></a>
-<span class="sourceLineNo">2293</span>      protected void run() throws IOException {<a name="line.2293"></a>
-<span class="sourceLineNo">2294</span>        getMaster().getMasterCoprocessorHost().preEnableTable(tableName);<a name="line.2294"></a>
-<span class="sourceLineNo">2295</span><a name="line.2295"></a>
-<span class="sourceLineNo">2296</span>        // Normally, it would make sense for this authorization check to exist inside<a name="line.2296"></a>
-<span class="sourceLineNo">2297</span>        // AccessController, but because the authorization check is done based on internal state<a name="line.2297"></a>
-<span class="sourceLineNo">2298</span>        // (rather than explicit permissions) we'll do the check here instead of in the<a name="line.2298"></a>
-<span class="sourceLineNo">2299</span>        // coprocessor.<a name="line.2299"></a>
-<span class="sourceLineNo">2300</span>        MasterQuotaManager quotaManager = getMasterQuotaManager();<a name="line.2300"></a>
-<span class="sourceLineNo">2301</span>        if (quotaManager != null) {<a name="line.2301"></a>
-<span class="sourceLineNo">2302</span>          if (quotaManager.isQuotaInitialized()) {<a name="line.2302"></a>
-<span class="sourceLineNo">2303</span>              SpaceQuotaSnapshot currSnapshotOfTable =<a name="line.2303"></a>
-<span class="sourceLineNo">2304</span>                  QuotaTableUtil.getCurrentSnapshotFromQuotaTable(getConnection(), tableName);<a name="line.2304"></a>
-<span class="sourceLineNo">2305</span>              if (currSnapshotOfTable != null) {<a name="line.2305"></a>
-<span class="sourceLineNo">2306</span>                SpaceQuotaStatus quotaStatus = currSnapshotOfTable.getQuotaStatus();<a name="line.2306"></a>
-<span class="sourceLineNo">2307</span>                if (quotaStatus.isInViolation()<a name="line.2307"></a>
-<span class="sourceLineNo">2308</span>                    &amp;&amp; SpaceViolationPolicy.DISABLE == quotaStatus.getPolicy().orElse(null)) {<a name="line.2308"></a>
-<span class="sourceLineNo">2309</span>                throw new AccessDeniedException("Enabling the table '" + tableName<a name="line.2309"></a>
-<span class="sourceLineNo">2310</span>                    + "' is disallowed due to a violated space quota.");<a name="line.2310"></a>
-<span class="sourceLineNo">2311</span>              }<a name="line.2311"></a>
-<span class="sourceLineNo">2312</span>            }<a name="line.2312"></a>
-<span class="sourceLineNo">2313</span>          } else if (LOG.isTraceEnabled()) {<a name="line.2313"></a>
-<span class="sourceLineNo">2314</span>            LOG.trace("Unable to check for space quotas as the MasterQuotaManager is not enabled");<a name="line.2314"></a>
-<span class="sourceLineNo">2315</span>          }<a name="line.2315"></a>
-<span class="sourceLineNo">2316</span>        }<a name="line.2316"></a>
-<span class="sourceLineNo">2317</span><a name="line.2317"></a>
-<span class="sourceLineNo">2318</span>        LOG.info(getClientIdAuditPrefix() + " enable " + tableName);<a name="line.2318"></a>
-<span class="sourceLineNo">2319</span><a name="line.2319"></a>
-<span class="sourceLineNo">2320</span>        // Execute the operation asynchronously - client will check the progress of the operation<a name="line.2320"></a>
-<span class="sourceLineNo">2321</span>        // In case the request is from a &lt;1.1 client before returning,<a name="line.2321"></a>
-<span class="sourceLineNo">2322</span>        // we want to make sure that the table is prepared to be<a name="line.2322"></a>
-<span class="sourceLineNo">2323</span>        // enabled (the table is locked and the table state is set).<a name="line.2323"></a>
-<span class="sourceLineNo">2324</span>        // Note: if the procedure throws exception, we will catch it and rethrow.<a name="line.2324"></a>
-<span class="sourceLineNo">2325</span>        final ProcedurePrepareLatch prepareLatch = ProcedurePrepareLatch.createLatch();<a name="line.2325"></a>
-<span class="sourceLineNo">2326</span>        submitProcedure(new EnableTableProcedure(procedureExecutor.getEnvironment(),<a name="line.2326"></a>
-<span class="sourceLineNo">2327</span>            tableName, prepareLatch));<a name="line.2327"></a>
-<span class="sourceLineNo">2328</span>        prepareLatch.await();<a name="line.2328"></a>
-<span class="sourceLineNo">2329</span><a name="line.2329"></a>
-<span class="sourceLineNo">2330</span>        getMaster().getMasterCoprocessorHost().postEnableTable(tableName);<a name="line.2330"></a>
-<span class="sourceLineNo">2331</span>      }<a name="line.2331"></a>
-<span class="sourceLineNo">2332</span><a name="line.2332"></a>
-<span class="sourceLineNo">2333</span>      @Override<a name="line.2333"></a>
-<span class="sourceLineNo">2334</span>      protected String getDescription() {<a name="line.2334"></a>
-<span class="sourceLineNo">2335</span>        return "EnableTableProcedure";<a name="line.2335"></a>
-<span class="sourceLineNo">2336</span>      }<a name="line.2336"></a>
-<span class="sourceLineNo">2337</span>    });<a name="line.2337"></a>
-<span class="sourceLineNo">2338</span>  }<a name="line.2338"></a>
-<span class="sourceLineNo">2339</span><a name="line.2339"></a>
-<span class="sourceLineNo">2340</span>  @Override<a name="line.2340"></a>
-<span class="sourceLineNo">2341</span>  public long disableTable(final TableName tableName, final long nonceGroup, final long nonce)<a name="line.2341"></a>
-<span class="sourceLineNo">2342</span>      throws IOException {<a name="line.2342"></a>
-<span class="sourceLineNo">2343</span>    checkInitialized();<a name="line.2343"></a>
-<span class="sourceLineNo">2344</span><a name="line.2344"></a>
-<span class="sourceLineNo">2345</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2345"></a>
-<span class="sourceLineNo">2346</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2346"></a>
-<span class="sourceLineNo">2347</span>      @Override<a name="line.2347"></a>
-<span class="sourceLineNo">2348</span>      protected void run() throws IOException {<a name="line.2348"></a>
-<span class="sourceLineNo">2349</span>        getMaster().getMasterCoprocessorHost().preDisableTable(tableName);<a name="line.2349"></a>
-<span class="sourceLineNo">2350</span><a name="line.2350"></a>
-<span class="sourceLineNo">2351</span>        LOG.info(getClientIdAuditPrefix() + " disable " + tableName);<a name="line.2351"></a>
-<span class="sourceLineNo">2352</span><a name="line.2352"></a>
-<span class="sourceLineNo">2353</span>        // Execute the operation asynchronously - client will check the progress of the operation<a name="line.2353"></a>
-<span class="sourceLineNo">2354</span>        // In case the request is from a &lt;1.1 client before returning,<a name="line.2354"></a>
-<span class="sourceLineNo">2355</span>        // we want to make sure that the table is prepared to be<a name="line.2355"></a>
-<span class="sourceLineNo">2356</span>        // enabled (the table is locked and the table state is set).<a name="line.2356"></a>
-<span class="sourceLineNo">2357</span>        // Note: if the procedure throws exception, we will catch it and rethrow.<a name="line.2357"></a>
-<span class="sourceLineNo">2358</span>        //<a name="line.2358"></a>
-<span class="sourceLineNo">2359</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2359"></a>
-<span class="sourceLineNo">2360</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2360"></a>
-<span class="sourceLineNo">2361</span>        final ProcedurePrepareLatch prepareLatch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2361"></a>
-<span class="sourceLineNo">2362</span>        submitProcedure(new DisableTableProcedure(procedureExecutor.getEnvironment(),<a name="line.2362"></a>
-<span class="sourceLineNo">2363</span>            tableName, false, prepareLatch));<a name="line.2363"></a>
-<span class="sourceLineNo">2364</span>        prepareLatch.await();<a name="line.2364"></a>
-<span class="sourceLineNo">2365</span><a name="line.2365"></a>
-<span class="sourceLineNo">2366</span>        getMaster().getMasterCoprocessorHost().postDisableTable(tableName);<a name="line.2366"></a>
-<span class="sourceLineNo">2367</span>      }<a name="line.2367"></a>
-<span class="sourceLineNo">2368</span><a name="line.2368"></a>
-<span class="sourceLineNo">2369</span>      @Override<a name="line.2369"></a>
-<span class="sourceLineNo">2370</span>      protected String getDescription() {<a name="line.2370"></a>
-<span class="sourceLineNo">2371</span>        return "DisableTableProcedure";<a name="line.2371"></a>
-<span class="sourceLineNo">2372</span>      }<a name="line.2372"></a>
-<span class="sourceLineNo">2373</span>    });<a name="line.2373"></a>
-<span class="sourceLineNo">2374</span>  }<a name="line.2374"></a>
-<span class="sourceLineNo">2375</span><a name="line.2375"></a>
-<span class="sourceLineNo">2376</span>  private long modifyTable(final TableName tableName,<a name="line.2376"></a>
-<span class="sourceLineNo">2377</span>      final TableDescriptorGetter newDescriptorGetter, final long nonceGroup, final long nonce,<a name="line.2377"></a>
-<span class="sourceLineNo">2378</span>      final boolean shouldCheckDescriptor) throws IOException {<a name="line.2378"></a>
-<span class="sourceLineNo">2379</span>    return MasterProcedureUtil<a name="line.2379"></a>
-<span class="sourceLineNo">2380</span>        .submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2380"></a>
-<span class="sourceLineNo">2381</span>          @Override<a name="line.2381"></a>
-<span class="sourceLineNo">2382</span>          protected void run() throws IOException {<a name="line.2382"></a>
-<span class="sourceLineNo">2383</span>            TableDescriptor oldDescriptor = getMaster().getTableDescriptors().get(tableName);<a name="line.2383"></a>
-<span class="sourceLineNo">2384</span>            TableDescriptor newDescriptor = getMaster().getMasterCoprocessorHost()<a name="line.2384"></a>
-<span class="sourceLineNo">2385</span>                .preModifyTable(tableName, oldDescriptor, newDescriptorGetter.get());<a name="line.2385"></a>
-<span class="sourceLineNo">2386</span>            TableDescriptorChecker.sanityCheck(conf, newDescriptor);<a name="line.2386"></a>
-<span class="sourceLineNo">2387</span>            LOG.info("{} modify table {} from {} to {}", getClientIdAuditPrefix(), tableName,<a name="line.2387"></a>
-<span class="sourceLineNo">2388</span>                oldDescriptor, newDescriptor);<a name="line.2388"></a>
-<span class="sourceLineNo">2389</span><a name="line.2389"></a>
-<span class="sourceLineNo">2390</span>            // Execute the operation synchronously - wait for the operation completes before<a name="line.2390"></a>
-<span class="sourceLineNo">2391</span>            // continuing.<a name="line.2391"></a>
-<span class="sourceLineNo">2392</span>            //<a name="line.2392"></a>
-<span class="sourceLineNo">2393</span>            // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2393"></a>
-<span class="sourceLineNo">2394</span>            // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2394"></a>
-<span class="sourceLineNo">2395</span>            ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2395"></a>
-<span class="sourceLineNo">2396</span>            submitProcedure(new ModifyTableProcedure(procedureExecutor.getEnvironment(),<a name="line.2396"></a>
-<span class="sourceLineNo">2397</span>                newDescriptor, latch, oldDescriptor, shouldCheckDescriptor));<a name="line.2397"></a>
-<span class="sourceLineNo">2398</span>            latch.await();<a name="line.2398"></a>
-<span class="sourceLineNo">2399</span><a name="line.2399"></a>
-<span class="sourceLineNo">2400</span>            getMaster().getMasterCoprocessorHost().postModifyTable(tableName, oldDescriptor,<a name="line.2400"></a>
-<span class="sourceLineNo">2401</span>              newDescriptor);<a name="line.2401"></a>
-<span class="sourceLineNo">2402</span>          }<a name="line.2402"></a>
-<span class="sourceLineNo">2403</span><a name="line.2403"></a>
-<span class="sourceLineNo">2404</span>          @Override<a name="line.2404"></a>
-<span class="sourceLineNo">2405</span>          protected String getDescription() {<a name="line.2405"></a>
-<span class="sourceLineNo">2406</span>            return "ModifyTableProcedure";<a name="line.2406"></a>
-<span class="sourceLineNo">2407</span>          }<a name="line.2407"></a>
-<span class="sourceLineNo">2408</span>        });<a name="line.2408"></a>
-<span class="sourceLineNo">2409</span><a name="line.2409"></a>
-<span class="sourceLineNo">2410</span>  }<a name="line.2410"></a>
-<span class="sourceLineNo">2411</span><a name="line.2411"></a>
-<span class="sourceLineNo">2412</span>  @Override<a name="line.2412"></a>
-<span class="sourceLineNo">2413</span>  public long modifyTable(final TableName tableName, final TableDescriptor newDescriptor,<a name="line.2413"></a>
-<span class="sourceLineNo">2414</span>      final long nonceGroup, final long nonce) throws IOException {<a name="line.2414"></a>
-<span class="sourceLineNo">2415</span>    checkInitialized();<a name="line.2415"></a>
-<span class="sourceLineNo">2416</span>    return modifyTable(tableName, new TableDescriptorGetter() {<a name="line.2416"></a>
-<span class="sourceLineNo">2417</span>      @Override<a name="line.2417"></a>
-<span class="sourceLineNo">2418</span>      public TableDescriptor get() throws IOException {<a name="line.2418"></a>
-<span class="sourceLineNo">2419</span>        return newDescriptor;<a name="line.2419"></a>
-<span class="sourceLineNo">2420</span>      }<a name="line.2420"></a>
-<span class="sourceLineNo">2421</span>    }, nonceGroup, nonce, false);<a name="line.2421"></a>
-<span class="sourceLineNo">2422</span><a name="line.2422"></a>
-<span class="sourceLineNo">2423</span>  }<a name="line.2423"></a>
-<span class="sourceLineNo">2424</span><a name="line.2424"></a>
-<span class="sourceLineNo">2425</span>  public long restoreSnapshot(final SnapshotDescription snapshotDesc,<a name="line.2425"></a>
-<span class="sourceLineNo">2426</span>      final long nonceGroup, final long nonce, final boolean restoreAcl) throws IOException {<a name="line.2426"></a>
-<span class="sourceLineNo">2427</span>    checkInitialized();<a name="line.2427"></a>
-<span class="sourceLineNo">2428</span>    getSnapshotManager().checkSnapshotSupport();<a name="line.2428"></a>
-<span class="sourceLineNo">2429</span><a name="line.2429"></a>
-<span class="sourceLineNo">2430</span>    // Ensure namespace exists. Will throw exception if non-known NS.<a name="line.2430"></a>
-<span class="sourceLineNo">2431</span>    final TableName dstTable = TableName.valueOf(snapshotDesc.getTable());<a name="line.2431"></a>
-<span class="sourceLineNo">2432</span>    getClusterSchema().getNamespace(dstTable.getNamespaceAsString());<a name="line.2432"></a>
-<span class="sourceLineNo">2433</span><a name="line.2433"></a>
-<span class="sourceLineNo">2434</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2434"></a>
-<span class="sourceLineNo">2435</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2435"></a>
-<span class="sourceLineNo">2436</span>      @Override<a name="line.2436"></a>
-<span class="sourceLineNo">2437</span>      protected void run() throws IOException {<a name="line.2437"></a>
-<span class="sourceLineNo">2438</span>          setProcId(<a name="line.2438"></a>
-<span class="sourceLineNo">2439</span>            getSnapshotManager().restoreOrCloneSnapshot(snapshotDesc, getNonceKey(), restoreAcl));<a name="line.2439"></a>
-<span class="sourceLineNo">2440</span>      }<a name="line.2440"></a>
-<span class="sourceLineNo">2441</span><a name="line.2441"></a>
-<span class="sourceLineNo">2442</span>      @Override<a name="line.2442"></a>
-<span class="sourceLineNo">2443</span>      protected String getDescription() {<a name="line.2443"></a>
-<span class="sourceLineNo">2444</span>        return "RestoreSnapshotProcedure";<a name="line.2444"></a>
-<span class="sourceLineNo">2445</span>      }<a name="line.2445"></a>
-<span class="sourceLineNo">2446</span>    });<a name="line.2446"></a>
-<span class="sourceLineNo">2447</span>  }<a name="line.2447"></a>
-<span class="sourceLineNo">2448</span><a name="line.2448"></a>
-<span class="sourceLineNo">2449</span>  private void checkTableExists(final TableName tableName)<a name="line.2449"></a>
-<span class="sourceLineNo">2450</span>    throws IOException, TableNotFoundException {<a name="line.2450"></a>
-<span class="sourceLineNo">2451</span>    if (!tableDescriptors.exists(tableName)) {<a name="line.2451"></a>
-<span class="sourceLineNo">2452</span>      throw new TableNotFoundException(tableName);<a name="line.2452"></a>
-<span class="sourceLineNo">2453</span>    }<a name="line.2453"></a>
-<span class="sourceLineNo">2454</span>  }<a name="line.2454"></a>
-<span class="sourceLineNo">2455</span><a name="line.2455"></a>
-<span class="sourceLineNo">2456</span>  @Override<a name="line.2456"></a>
-<span class="sourceLineNo">2457</span>  public void checkTableModifiable(final TableName tableName)<a name="line.2457"></a>
-<span class="sourceLineNo">2458</span>      throws IOException, TableNotFoundException, TableNotDisabledException {<a name="line.2458"></a>
-<span class="sourceLineNo">2459</span>    if (isCatalogTable(tableName)) {<a name="line.2459"></a>
-<span class="sourceLineNo">2460</span>      throw new IOException("Can't modify catalog tables");<a name="line.2460"></a>
-<span class="sourceLineNo">2461</span>    }<a name="line.2461"></a>
-<span class="sourceLineNo">2462</span>    checkTableExists(tableName);<a name="line.2462"></a>
-<span class="sourceLineNo">2463</span>    TableState ts = getTableStateManager().getTableState(tableName);<a name="line.2463"></a>
-<span class="sourceLineNo">2464</span>    if (!ts.isDisabled()) {<a name="line.2464"></a>
-<span class="sourceLineNo">2465</span>      throw new TableNotDisabledException("Not DISABLED; " + ts);<a name="line.2465"></a>
-<span class="sourceLineNo">2466</span>    }<a name="line.2466"></a>
-<span class="sourceLineNo">2467</span>  }<a name="line.2467"></a>
-<span class="sourceLineNo">2468</span><a name="line.2468"></a>
-<span class="sourceLineNo">2469</span>  public ClusterMetrics getClusterMetricsWithoutCoprocessor() throws InterruptedIOException {<a name="line.2469"></a>
-<span class="sourceLineNo">2470</span>    return getClusterMetricsWithoutCoprocessor(EnumSet.allOf(Option.class));<a name="line.2470"></a>
-<span class="sourceLineNo">2471</span>  }<a name="line.2471"></a>
-<span class="sourceLineNo">2472</span><a name="line.2472"></a>
-<span class="sourceLineNo">2473</span>  public ClusterMetrics getClusterMetricsWithoutCoprocessor(EnumSet&lt;Option&gt; options)<a name="line.2473"></a>
-<span class="sourceLineNo">2474</span>      throws InterruptedIOException {<a name="line.2474"></a>
-<span class="sourceLineNo">2475</span>    ClusterMetricsBuilder builder = ClusterMetricsBuilder.newBuilder();<a name="line.2475"></a>
-<span class="sourceLineNo">2476</span>    // given that hbase1 can't submit the request with Option,<a name="line.2476"></a>
-<span class="sourceLineNo">2477</span>    // we return all information to client if the list of Option is empty.<a name="line.2477"></a>
-<span class="sourceLineNo">2478</span>    if (options.isEmpty()) {<a name="line.2478"></a>
-<span class="sourceLineNo">2479</span>      options = EnumSet.allOf(Option.class);<a name="line.2479"></a>
-<span class="sourceLineNo">2480</span>    }<a name="line.2480"></a>
-<span class="sourceLineNo">2481</span><a name="line.2481"></a>
-<span class="sourceLineNo">2482</span>    for (Option opt : options) {<a name="line.2482"></a>
-<span class="sourceLineNo">2483</span>      switch (opt) {<a name="line.2483"></a>
-<span class="sourceLineNo">2484</span>        case HBASE_VERSION: builder.setHBaseVersion(VersionInfo.getVersion()); break;<a name="line.2484"></a>
-<span class="sourceLineNo">2485</span>        case CLUSTER_ID: builder.setClusterId(getClusterId()); break;<a name="line.2485"></a>
-<span class="sourceLineNo">2486</span>        case MASTER: builder.setMasterName(getServerName()); break;<a name="line.2486"></a>
-<span class="sourceLineNo">2487</span>        case BACKUP_MASTERS: builder.setBackerMasterNames(getBackupMasters()); break;<a name="line.2487"></a>
-<span class="sourceLineNo">2488</span>        case LIVE_SERVERS: {<a name="line.2488"></a>
-<span class="sourceLineNo">2489</span>          if (serverManager != null) {<a name="line.2489"></a>
-<span class="sourceLineNo">2490</span>            builder.setLiveServerMetrics(serverManager.getOnlineServers().entrySet().stream()<a name="line.2490"></a>
-<span class="sourceLineNo">2491</span>              .collect(Collectors.toMap(e -&gt; e.getKey(), e -&gt; e.getValue())));<a name="line.2491"></a>
-<span class="sourceLineNo">2492</span>          }<a name="line.2492"></a>
-<span class="sourceLineNo">2493</span>          break;<a name="line.2493"></a>
-<span class="sourceLineNo">2494</span>        }<a name="line.2494"></a>
-<span class="sourceLineNo">2495</span>        case DEAD_SERVERS: {<a name="line.2495"></a>
-<span class="sourceLineNo">2496</span>          if (serverManager != null) {<a name="line.2496"></a>
-<span class="sourceLineNo">2497</span>            builder.setDeadServerNames(new ArrayList&lt;&gt;(<a name="line.2497"></a>
-<span class="sourceLineNo">2498</span>              serverManager.getDeadServers().copyServerNames()));<a name="line.2498"></a>
-<span class="sourceLineNo">2499</span>          }<a name="line.2499"></a>
-<span class="sourceLineNo">2500</span>          break;<a name="line.2500"></a>
-<span class="sourceLineNo">2501</span>        }<a name="line.2501"></a>
-<span class="sourceLineNo">2502</span>        case MASTER_COPROCESSORS: {<a name="line.2502"></a>
-<span class="sourceLineNo">2503</span>          if (cpHost != null) {<a name="line.2503"></a>
-<span class="sourceLineNo">2504</span>            builder.setMasterCoprocessorNames(Arrays.asList(getMasterCoprocessors()));<a name="line.2504"></a>
-<span class="sourceLineNo">2505</span>          }<a name="line.2505"></a>
-<span class="sourceLineNo">2506</span>          break;<a name="line.2506"></a>
-<span class="sourceLineNo">2507</span>        }<a name="line.2507"></a>
-<span class="sourceLineNo">2508</span>        case REGIONS_IN_TRANSITION: {<a name="line.2508"></a>
-<span class="sourceLineNo">2509</span>          if (assignmentManager != null) {<a name="line.2509"></a>
-<span class="sourceLineNo">2510</span>            builder.setRegionsInTransition(assignmentManager.getRegionStates()<a name="line.2510"></a>
-<span class="sourceLineNo">2511</span>                .getRegionsStateInTransition());<a name="line.2511"></a>
-<span class="sourceLineNo">2512</span>          }<a name="line.2512"></a>
-<span class="sourceLineNo">2513</span>          break;<a name="line.2513"></a>
-<span class="sourceLineNo">2514</span>        }<a name="line.2514"></a>
-<span class="sourceLineNo">2515</span>        case BALANCER_ON: {<a name="line.2515"></a>
-<span class="sourceLineNo">2516</span>          if (loadBalancerTracker != null) {<a name="line.2516"></a>
-<span class="sourceLineNo">2517</span>            builder.setBalancerOn(loadBalancerTracker.isBalancerOn());<a name="line.2517"></a>
-<span class="sourceLineNo">2518</span>          }<a name="line.2518"></a>
-<span class="sourceLineNo">2519</span>          break;<a name="line.2519"></a>
-<span class="sourceLineNo">2520</span>        }<a name="line.2520"></a>
-<span class="sourceLineNo">2521</span>        case MASTER_INFO_PORT: {<a name="line.2521"></a>
-<span class="sourceLineNo">2522</span>          if (infoServer != null) {<a name="line.2522"></a>
-<span class="sourceLineNo">2523</span>            builder.setMasterInfoPort(infoServer.getPort());<a name="line.2523"></a>
-<span class="sourceLineNo">2524</span>          }<a name="line.2524"></a>
-<span class="sourceLineNo">2525</span>          break;<a name="line.2525"></a>
-<span class="sourceLineNo">2526</span>        }<a name="line.2526"></a>
-<span class="sourceLineNo">2527</span>        case SERVERS_NAME: {<a name="line.2527"></a>
-<span class="sourceLineNo">2528</span>          if (serverManager != null) {<a name="line.2528"></a>
-<span class="sourceLineNo">2529</span>            builder.setServerNames(serverManager.getOnlineServersList());<a name="line.2529"></a>
-<span class="sourceLineNo">2530</span>          }<a name="line.2530"></a>
-<span class="sourceLineNo">2531</span>          break;<a name="line.2531"></a>
-<span class="sourceLineNo">2532</span>        }<a name="line.2532"></a>
-<span class="sourceLineNo">2533</span>        case TABLE_TO_REGIONS_COUNT: {<a name="line.2533"></a>
-<span class="sourceLineNo">2534</span>          if (isActiveMaster() &amp;&amp; isInitialized() &amp;&amp; assignmentManager != null) {<a name="line.2534"></a>
-<span class="sourceLineNo">2535</span>            try {<a name="line.2535"></a>
-<span class="sourceLineNo">2536</span>              Map&lt;TableName, RegionStatesCount&gt; tableRegionStatesCountMap = new HashMap&lt;&gt;();<a name="line.2536"></a>
-<span class="sourceLineNo">2537</span>              Map&lt;String, TableDescriptor&gt; tableDescriptorMap = getTableDescriptors().getAll();<a name="line.2537"></a>
-<span class="sourceLineNo">2538</span>              for (TableDescriptor tableDescriptor : tableDescriptorMap.values()) {<a name="line.2538"></a>
-<span class="sourceLineNo">2539</span>                TableName tableName = tableDescriptor.getTableName();<a name="line.2539"></a>
-<span class="sourceLineNo">2540</span>                RegionStatesCount regionStatesCount = assignmentManager<a name="line.2540"></a>
-<span class="sourceLineNo">2541</span>                  .getRegionStatesCount(tableName);<a name="line.2541"></a>
-<span class="sourceLineNo">2542</span>                tableRegionStatesCountMap.put(tableName, regionStatesCount);<a name="line.2542"></a>
-<span class="sourceLineNo">2543</span>              }<a name="line.2543"></a>
-<span class="sourceLineNo">2544</span>              builder.setTableRegionStatesCount(tableRegionStatesCountMap);<a name="line.2544"></a>
-<span class="sourceLineNo">2545</span>            } catch (IOException e) {<a name="line.2545"></a>
-<span class="sourceLineNo">2546</span>              LOG.error("Error while populating TABLE_TO_REGIONS_COUNT for Cluster Metrics..", e);<a name="line.2546"></a>
-<span class="sourceLineNo">2547</span>            }<a name="line.2547"></a>
-<span class="sourceLineNo">2548</span>          }<a name="line.2548"></a>
-<span class="sourceLineNo">2549</span>          break;<a name="line.2549"></a>
-<span class="sourceLineNo">2550</span>        }<a name="line.2550"></a>
-<span class="sourceLineNo">2551</span>      }<a name="line.2551"></a>
-<span class="sourceLineNo">2552</span>    }<a name="line.2552"></a>
-<span class="sourceLineNo">2553</span>    return builder.build();<a name="line.2553"></a>
-<span class="sourceLineNo">2554</span>  }<a name="line.2554"></a>
-<span class="sourceLineNo">2555</span><a name="line.2555"></a>
-<span class="sourceLineNo">2556</span>  /**<a name="line.2556"></a>
-<span class="sourceLineNo">2557</span>   * @return cluster status<a name="line.2557"></a>
-<span class="sourceLineNo">2558</span>   */<a name="line.2558"></a>
-<span class="sourceLineNo">2559</span>  public ClusterMetrics getClusterMetrics() throws IOException {<a name="line.2559"></a>
-<span class="sourceLineNo">2560</span>    return getClusterMetrics(EnumSet.allOf(Option.class));<a name="line.2560"></a>
-<span class="sourceLineNo">2561</span>  }<a name="line.2561"></a>
-<span class="sourceLineNo">2562</span><a name="line.2562"></a>
-<span class="sourceLineNo">2563</span>  public ClusterMetrics getClusterMetrics(EnumSet&lt;Option&gt; options) throws IOException {<a name="line.2563"></a>
-<span class="sourceLineNo">2564</span>    if (cpHost != null) {<a name="line.2564"></a>
-<span class="sourceLineNo">2565</span>      cpHost.preGetClusterMetrics();<a name="line.2565"></a>
-<span class="sourceLineNo">2566</span>    }<a name="line.2566"></a>
-<span class="sourceLineNo">2567</span>    ClusterMetrics status = getClusterMetricsWithoutCoprocessor(options);<a name="line.2567"></a>
-<span class="sourceLineNo">2568</span>    if (cpHost != null) {<a name="line.2568"></a>
-<span class="sourceLineNo">2569</span>      cpHost.postGetClusterMetrics(status);<a name="line.2569"></a>
-<span class="sourceLineNo">2570</span>    }<a name="line.2570"></a>
-<span class="sourceLineNo">2571</span>    return status;<a name="line.2571"></a>
-<span class="sourceLineNo">2572</span>  }<a name="line.2572"></a>
-<span class="sourceLineNo">2573</span><a name="line.2573"></a>
-<span class="sourceLineNo">2574</span>  List&lt;ServerName&gt; getBackupMasters() {<a name="line.2574"></a>
-<span class="sourceLineNo">2575</span>    return activeMasterManager.getBackupMasters();<a name="line.2575"></a>
-<span class="sourceLineNo">2576</span>  }<a name="line.2576"></a>
-<span class="sourceLineNo">2577</span><a name="line.2577"></a>
-<span class="sourceLineNo">2578</span>  /**<a name="line.2578"></a>
-<span class="sourceLineNo">2579</span>   * The set of loaded coprocessors is stored in a static set. Since it's<a name="line.2579"></a>
-<span class="sourceLineNo">2580</span>   * statically allocated, it does not require that HMaster's cpHost be<a name="line.2580"></a>
-<span class="sourceLineNo">2581</span>   * initialized prior to accessing it.<a name="line.2581"></a>
-<span class="sourceLineNo">2582</span>   * @return a String representation of the set of names of the loaded coprocessors.<a name="line.2582"></a>
-<span class="sourceLineNo">2583</span>   */<a name="line.2583"></a>
-<span class="sourceLineNo">2584</span>  public static String getLoadedCoprocessors() {<a name="line.2584"></a>
-<span class="sourceLineNo">2585</span>    return CoprocessorHost.getLoadedCoprocessors().toString();<a name="line.2585"></a>
-<span class="sourceLineNo">2586</span>  }<a name="line.2586"></a>
-<span class="sourceLineNo">2587</span><a name="line.2587"></a>
-<span class="sourceLineNo">2588</span>  /**<a name="line.2588"></a>
-<span class="sourceLineNo">2589</span>   * @return timestamp in millis when HMaster was started.<a name="line.2589"></a>
-<span class="sourceLineNo">2590</span>   */<a name="line.2590"></a>
-<span class="sourceLineNo">2591</span>  public long getMasterStartTime() {<a name="line.2591"></a>
-<span class="sourceLineNo">2592</span>    return startcode;<a name="line.2592"></a>
-<span class="sourceLineNo">2593</span>  }<a name="line.2593"></a>
-<span class="sourceLineNo">2594</span><a name="line.2594"></a>
-<span class="sourceLineNo">2595</span>  /**<a name="line.2595"></a>
-<span class="sourceLineNo">2596</span>   * @return timestamp in millis when HMaster became the active master.<a name="line.2596"></a>
-<span class="sourceLineNo">2597</span>   */<a name="line.2597"></a>
-<span class="sourceLineNo">2598</span>  public long getMasterActiveTime() {<a name="line.2598"></a>
-<span class="sourceLineNo">2599</span>    return masterActiveTime;<a name="line.2599"></a>
-<span class="sourceLineNo">2600</span>  }<a name="line.2600"></a>
-<span class="sourceLineNo">2601</span><a name="line.2601"></a>
-<span class="sourceLineNo">2602</span>  /**<a name="line.2602"></a>
-<span class="sourceLineNo">2603</span>   * @return timestamp in millis when HMaster finished becoming the active master<a name="line.2603"></a>
-<span class="sourceLineNo">2604</span>   */<a name="line.2604"></a>
-<span class="sourceLineNo">2605</span>  public long getMasterFinishedInitializationTime() {<a name="line.2605"></a>
-<span class="sourceLineNo">2606</span>    return masterFinishedInitializationTime;<a name="line.2606"></a>
-<span class="sourceLineNo">2607</span>  }<a name="line.2607"></a>
-<span class="sourceLineNo">2608</span><a name="line.2608"></a>
-<span class="sourceLineNo">2609</span>  public int getNumWALFiles() {<a name="line.2609"></a>
-<span class="sourceLineNo">2610</span>    return 0;<a name="line.2610"></a>
-<span class="sourceLineNo">2611</span>  }<a name="line.2611"></a>
-<span class="sourceLineNo">2612</span><a name="line.2612"></a>
-<span class="sourceLineNo">2613</span>  public ProcedureStore getProcedureStore() {<a name="line.2613"></a>
-<span class="sourceLineNo">2614</span>    return procedureStore;<a name="line.2614"></a>
-<span class="sourceLineNo">2615</span>  }<a name="line.2615"></a>
-<span class="sourceLineNo">2616</span><a name="line.2616"></a>
-<span class="sourceLineNo">2617</span>  public int getRegionServerInfoPort(final ServerName sn) {<a name="line.2617"></a>
-<span class="sourceLineNo">2618</span>    int port = this.serverManager.getInfoPort(sn);<a name="line.2618"></a>
-<span class="sourceLineNo">2619</span>    return port == 0 ? conf.getInt(HConstants.REGIONSERVER_INFO_PORT,<a name="line.2619"></a>
-<span class="sourceLineNo">2620</span>      HConstants.DEFAULT_REGIONSERVER_INFOPORT) : port;<a name="line.2620"></a>
-<span class="sourceLineNo">2621</span>  }<a name="line.2621"></a>
-<span class="sourceLineNo">2622</span><a name="line.2622"></a>
-<span class="sourceLineNo">2623</span>  @Override<a name="line.2623"></a>
-<span class="sourceLineNo">2624</span>  public String getRegionServerVersion(ServerName sn) {<a name="line.2624"></a>
-<span class="sourceLineNo">2625</span>    // Will return "0.0.0" if the server is not online to prevent move system region to unknown<a name="line.2625"></a>
-<span class="sourceLineNo">2626</span>    // version RS.<a name="line.2626"></a>
-<span class="sourceLineNo">2627</span>    return this.serverManager.getVersion(sn);<a name="line.2627"></a>
-<span class="sourceLineNo">2628</span>  }<a name="line.2628"></a>
-<span class="sourceLineNo">2629</span><a name="line.2629"></a>
-<span class="sourceLineNo">2630</span>  @Override<a name="line.2630"></a>
-<span class="sourceLineNo">2631</span>  public void checkIfShouldMoveSystemRegionAsync() {<a name="line.2631"></a>
-<span class="sourceLineNo">2632</span>    assignmentManager.checkIfShouldMoveSystemRegionAsync();<a name="line.2632"></a>
-<span class="sourceLineNo">2633</span>  }<a name="line.2633"></a>
-<span class="sourceLineNo">2634</span><a name="line.2634"></a>
-<span class="sourceLineNo">2635</span>  /**<a name="line.2635"></a>
-<span class="sourceLineNo">2636</span>   * @return array of coprocessor SimpleNames.<a name="line.2636"></a>
-<span class="sourceLineNo">2637</span>   */<a name="line.2637"></a>
-<span class="sourceLineNo">2638</span>  public String[] getMasterCoprocessors() {<a name="line.2638"></a>
-<span class="sourceLineNo">2639</span>    Set&lt;String&gt; masterCoprocessors = getMasterCoprocessorHost().getCoprocessors();<a name="line.2639"></a>
-<span class="sourceLineNo">2640</span>    return masterCoprocessors.toArray(new String[masterCoprocessors.size()]);<a name="line.2640"></a>
-<span class="sourceLineNo">2641</span>  }<a name="line.2641"></a>
-<span class="sourceLineNo">2642</span><a name="line.2642"></a>
-<span class="sourceLineNo">2643</span>  @Override<a name="line.2643"></a>
-<span class="sourceLineNo">2644</span>  public void abort(String reason, Throwable cause) {<a name="line.2644"></a>
-<span class="sourceLineNo">2645</span>    if (!setAbortRequested() || isStopped()) {<a name="line.2645"></a>
-<span class="sourceLineNo">2646</span>      LOG.debug("Abort called but aborted={}, stopped={}", isAborted(), isStopped());<a name="line.2646"></a>
-<span class="sourceLineNo">2647</span>      return;<a name="line.2647"></a>
-<span class="sourceLineNo">2648</span>    }<a name="line.2648"></a>
-<span class="sourceLineNo">2649</span>    if (cpHost != null) {<a name="line.2649"></a>
-<span class="sourceLineNo">2650</span>      // HBASE-4014: dump a list of loaded coprocessors.<a name="line.2650"></a>
-<span class="sourceLineNo">2651</span>      LOG.error(HBaseMarkers.FATAL, "Master server abort: loaded coprocessors are: " +<a name="line.2651"></a>
-<span class="sourceLineNo">2652</span>          getLoadedCoprocessors());<a name="line.2652"></a>
-<span class="sourceLineNo">2653</span>    }<a name="line.2653"></a>
-<span class="sourceLineNo">2654</span>    String msg = "***** ABORTING master " + this + ": " + reason + " *****";<a name="line.2654"></a>
-<span class="sourceLineNo">2655</span>    if (cause != null) {<a name="line.2655"></a>
-<span class="sourceLineNo">2656</span>      LOG.error(HBaseMarkers.FATAL, msg, cause);<a name="line.2656"></a>
-<span class="sourceLineNo">2657</span>    } else {<a name="line.2657"></a>
-<span class="sourceLineNo">2658</span>      LOG.error(HBaseMarkers.FATAL, msg);<a name="line.2658"></a>
-<span class="sourceLineNo">2659</span>    }<a name="line.2659"></a>
-<span class="sourceLineNo">2660</span><a name="line.2660"></a>
-<span class="sourceLineNo">2661</span>    try {<a name="line.2661"></a>
-<span class="sourceLineNo">2662</span>      stopMaster();<a name="line.2662"></a>
-<span class="sourceLineNo">2663</span>    } catch (IOException e) {<a name="line.2663"></a>
-<span class="sourceLineNo">2664</span>      LOG.error("Exception occurred while stopping master", e);<a name="line.2664"></a>
-<span class="sourceLineNo">2665</span>    }<a name="line.2665"></a>
-<span class="sourceLineNo">2666</span>  }<a name="line.2666"></a>
-<span class="sourceLineNo">2667</span><a name="line.2667"></a>
-<span class="sourceLineNo">2668</span>  @Override<a name="line.2668"></a>
-<span class="sourceLineNo">2669</span>  public ZKWatcher getZooKeeper() {<a name="line.2669"></a>
-<span class="sourceLineNo">2670</span>    return zooKeeper;<a name="line.2670"></a>
-<span class="sourceLineNo">2671</span>  }<a name="line.2671"></a>
-<span class="sourceLineNo">2672</span><a name="line.2672"></a>
-<span class="sourceLineNo">2673</span>  @Override<a name="line.2673"></a>
-<span class="sourceLineNo">2674</span>  public MasterCoprocessorHost getMasterCoprocessorHost() {<a name="line.2674"></a>
-<span class="sourceLineNo">2675</span>    return cpHost;<a name="line.2675"></a>
-<span class="sourceLineNo">2676</span>  }<a name="line.2676"></a>
-<span class="sourceLineNo">2677</span><a name="line.2677"></a>
-<span class="sourceLineNo">2678</span>  @Override<a name="line.2678"></a>
-<span class="sourceLineNo">2679</span>  public MasterQuotaManager getMasterQuotaManager() {<a name="line.2679"></a>
-<span class="sourceLineNo">2680</span>    return quotaManager;<a name="line.2680"></a>
-<span class="sourceLineNo">2681</span>  }<a name="line.2681"></a>
-<span class="sourceLineNo">2682</span><a name="line.2682"></a>
-<span class="sourceLineNo">2683</span>  @Override<a name="line.2683"></a>
-<span class="sourceLineNo">2684</span>  public ProcedureExecutor&lt;MasterProcedureEnv&gt; getMasterProcedureExecutor() {<a name="line.2684"></a>
-<span class="sourceLineNo">2685</span>    return procedureExecutor;<a name="line.2685"></a>
-<span class="sourceLineNo">2686</span>  }<a name="line.2686"></a>
-<span class="sourceLineNo">2687</span><a name="line.2687"></a>
-<span class="sourceLineNo">2688</span>  @Override<a name="line.2688"></a>
-<span class="sourceLineNo">2689</span>  public ServerName getServerName() {<a name="line.2689"></a>
-<span class="sourceLineNo">2690</span>    return this.serverName;<a name="line.2690"></a>
-<span class="sourceLineNo">2691</span>  }<a name="line.2691"></a>
-<span class="sourceLineNo">2692</span><a name="line.2692"></a>
-<span class="sourceLineNo">2693</span>  @Override<a name="line.2693"></a>
-<span class="sourceLineNo">2694</span>  public AssignmentManager getAssignmentManager() {<a name="line.2694"></a>
-<span class="sourceLineNo">2695</span>    return this.assignmentManager;<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 CatalogJanitor getCatalogJanitor() {<a name="line.2699"></a>
-<span class="sourceLineNo">2700</span>    return this.catalogJanitorChore;<a name="line.2700"></a>
-<span class="sourceLineNo">2701</span>  }<a name="line.2701"></a>
-<span class="sourceLineNo">2702</span><a name="line.2702"></a>
-<span class="sourceLineNo">2703</span>  public MemoryBoundedLogMessageBuffer getRegionServerFatalLogBuffer() {<a name="line.2703"></a>
-<span class="sourceLineNo">2704</span>    return rsFatals;<a name="line.2704"></a>
-<span class="sourceLineNo">2705</span>  }<a name="line.2705"></a>
-<span class="sourceLineNo">2706</span><a name="line.2706"></a>
-<span class="sourceLineNo">2707</span>  /**<a name="line.2707"></a>
-<span class="sourceLineNo">2708</span>   * Shutdown the cluster.<a name="line.2708"></a>
-<span class="sourceLineNo">2709</span>   * Master runs a coordinated stop of all RegionServers and then itself.<a name="line.2709"></a>
-<span class="sourceLineNo">2710</span>   */<a name="line.2710"></a>
-<span class="sourceLineNo">2711</span>  public void shutdown() throws IOException {<a name="line.2711"></a>
-<span class="sourceLineNo">2712</span>    if (cpHost != null) {<a name="line.2712"></a>
-<span class="sourceLineNo">2713</span>      cpHost.preShutdown();<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>    // Tell the servermanager cluster shutdown has been called. This makes it so when Master is<a name="line.2716"></a>
-<span class="sourceLineNo">2717</span>    // last running server, it'll stop itself. Next, we broadcast the cluster shutdown by setting<a name="line.2717"></a>
-<span class="sourceLineNo">2718</span>    // the cluster status as down. RegionServers will notice this change in state and will start<a name="line.2718"></a>
-<span class="sourceLineNo">2719</span>    // shutting themselves down. When last has exited, Master can go down.<a name="line.2719"></a>
-<span class="sourceLineNo">2720</span>    if (this.serverManager != null) {<a name="line.2720"></a>
-<span class="sourceLineNo">2721</span>      this.serverManager.shutdownCluster();<a name="line.2721"></a>
-<span class="sourceLineNo">2722</span>    }<a name="line.2722"></a>
-<span class="sourceLineNo">2723</span>    if (this.clusterStatusTracker != null) {<a name="line.2723"></a>
-<span class="sourceLineNo">2724</span>      try {<a name="line.2724"></a>
-<span class="sourceLineNo">2725</span>        this.clusterStatusTracker.setClusterDown();<a name="line.2725"></a>
-<span class="sourceLineNo">2726</span>      } catch (KeeperException e) {<a name="line.2726"></a>
-<span class="sourceLineNo">2727</span>        LOG.error("ZooKeeper exception trying to set cluster as down in ZK", e);<a name="line.2727"></a>
-<span class="sourceLineNo">2728</span>      }<a name="line.2728"></a>
-<span class="sourceLineNo">2729</span>    }<a name="line.2729"></a>
-<span class="sourceLineNo">2730</span>    // Stop the procedure executor. Will stop any ongoing assign, unassign, server crash etc.,<a name="line.2730"></a>
-<span class="sourceLineNo">2731</span>    // processing so we can go down.<a name="line.2731"></a>
-<span class="sourceLineNo">2732</span>    if (this.procedureExecutor != null) {<a name="line.2732"></a>
-<span class="sourceLineNo">2733</span>      this.procedureExecutor.stop();<a name="line.2733"></a>
-<span class="sourceLineNo">2734</span>    }<a name="line.2734"></a>
-<span class="sourceLineNo">2735</span>    // Shutdown our cluster connection. This will kill any hosted RPCs that might be going on;<a name="line.2735"></a>
-<span class="sourceLineNo">2736</span>    // this is what we want especially if the Master is in startup phase doing call outs to<a name="line.2736"></a>
-<span class="sourceLineNo">2737</span>    // hbase:meta, etc. when cluster is down. Without ths connection close, we'd have to wait on<a name="line.2737"></a>
-<span class="sourceLineNo">2738</span>    // the rpc to timeout.<a name="line.2738"></a>
-<span class="sourceLineNo">2739</span>    if (this.asyncClusterConnection != null) {<a name="line.2739"></a>
-<span class="sourceLineNo">2740</span>      this.asyncClusterConnection.close();<a name="line.2740"></a>
-<span class="sourceLineNo">2741</span>    }<a name="line.2741"></a>
-<span class="sourceLineNo">2742</span>  }<a name="line.2742"></a>
-<span class="sourceLineNo">2743</span><a name="line.2743"></a>
-<span class="sourceLineNo">2744</span>  public void stopMaster() throws IOException {<a name="line.2744"></a>
-<span class="sourceLineNo">2745</span>    if (cpHost != null) {<a name="line.2745"></a>
-<span class="sourceLineNo">2746</span>      cpHost.preStopMaster();<a name="line.2746"></a>
-<span class="sourceLineNo">2747</span>    }<a name="line.2747"></a>
-<span class="sourceLineNo">2748</span>    stop("Stopped by " + Thread.currentThread().getName());<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 stop(String msg) {<a name="line.2752"></a>
-<span class="sourceLineNo">2753</span>    if (!isStopped()) {<a name="line.2753"></a>
-<span class="sourceLineNo">2754</span>      super.stop(msg);<a name="line.2754"></a>
-<span class="sourceLineNo">2755</span>      if (this.activeMasterManager != null) {<a name="line.2755"></a>
-<span class="sourceLineNo">2756</span>        this.activeMasterManager.stop();<a name="line.2756"></a>
-<span class="sourceLineNo">2757</span>      }<a name="line.2757"></a>
-<span class="sourceLineNo">2758</span>    }<a name="line.2758"></a>
-<span class="sourceLineNo">2759</span>  }<a name="line.2759"></a>
-<span class="sourceLineNo">2760</span><a name="line.2760"></a>
-<span class="sourceLineNo">2761</span>  @InterfaceAudience.Private<a name="line.2761"></a>
-<span class="sourceLineNo">2762</span>  protected void checkServiceStarted() throws ServerNotRunningYetException {<a name="line.2762"></a>
-<span class="sourceLineNo">2763</span>    if (!serviceStarted) {<a name="line.2763"></a>
-<span class="sourceLineNo">2764</span>      throw new ServerNotRunningYetException("Server is not running yet");<a name="line.2764"></a>
-<span class="sourceLineNo">2765</span>    }<a name="line.2765"></a>
-<span class="sourceLineNo">2766</span>  }<a name="line.2766"></a>
-<span class="sourceLineNo">2767</span><a name="line.2767"></a>
-<span class="sourceLineNo">2768</span>  void checkInitialized() throws PleaseHoldException, ServerNotRunningYetException,<a name="line.2768"></a>
-<span class="sourceLineNo">2769</span>      MasterNotRunningException, MasterStoppedException {<a name="line.2769"></a>
-<span class="sourceLineNo">2770</span>    checkServiceStarted();<a name="line.2770"></a>
-<span class="sourceLineNo">2771</span>    if (!isInitialized()) {<a name="line.2771"></a>
-<span class="sourceLineNo">2772</span>      throw new PleaseHoldException("Master is initializing");<a name="line.2772"></a>
-<span class="sourceLineNo">2773</span>    }<a name="line.2773"></a>
-<span class="sourceLineNo">2774</span>    if (isStopped()) {<a name="line.2774"></a>
-<span class="sourceLineNo">2775</span>      throw new MasterStoppedException();<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>
-<span class="sourceLineNo">2778</span><a name="line.2778"></a>
-<span class="sourceLineNo">2779</span>  /**<a name="line.2779"></a>
-<span class="sourceLineNo">2780</span>   * Report whether this master is currently the active master or not.<a name="line.2780"></a>
-<span class="sourceLineNo">2781</span>   * If not active master, we are parked on ZK waiting to become active.<a name="line.2781"></a>
-<span class="sourceLineNo">2782</span>   *<a name="line.2782"></a>
-<span class="sourceLineNo">2783</span>   * This method is used for testing.<a name="line.2783"></a>
-<span class="sourceLineNo">2784</span>   *<a name="line.2784"></a>
-<span class="sourceLineNo">2785</span>   * @return true if active master, false if not.<a name="line.2785"></a>
-<span class="sourceLineNo">2786</span>   */<a name="line.2786"></a>
-<span class="sourceLineNo">2787</span>  @Override<a name="line.2787"></a>
-<span class="sourceLineNo">2788</span>  public boolean isActiveMaster() {<a name="line.2788"></a>
-<span class="sourceLineNo">2789</span>    return activeMaster;<a name="line.2789"></a>
-<span class="sourceLineNo">2790</span>  }<a name="line.2790"></a>
-<span class="sourceLineNo">2791</span><a name="line.2791"></a>
-<span class="sourceLineNo">2792</span>  /**<a name="line.2792"></a>
-<span class="sourceLineNo">2793</span>   * Report whether this master has completed with its initialization and is<a name="line.2793"></a>
-<span class="sourceLineNo">2794</span>   * ready.  If ready, the master is also the active master.  A standby master<a name="line.2794"></a>
-<span class="sourceLineNo">2795</span>   * is never ready.<a name="line.2795"></a>
-<span class="sourceLineNo">2796</span>   *<a name="line.2796"></a>
-<span class="sourceLineNo">2797</span>   * This method is used for testing.<a name="line.2797"></a>
-<span class="sourceLineNo">2798</span>   *<a name="line.2798"></a>
-<span class="sourceLineNo">2799</span>   * @return true if master is ready to go, false if not.<a name="line.2799"></a>
-<span class="sourceLineNo">2800</span>   */<a name="line.2800"></a>
-<span class="sourceLineNo">2801</span>  @Override<a name="line.2801"></a>
-<span class="sourceLineNo">2802</span>  public boolean isInitialized() {<a name="line.2802"></a>
-<span class="sourceLineNo">2803</span>    return initialized.isReady();<a name="line.2803"></a>
-<span class="sourceLineNo">2804</span>  }<a name="line.2804"></a>
-<span class="sourceLineNo">2805</span><a name="line.2805"></a>
-<span class="sourceLineNo">2806</span>  /**<a name="line.2806"></a>
-<span class="sourceLineNo">2807</span>   * Report whether this master is started<a name="line.2807"></a>
-<span class="sourceLineNo">2808</span>   *<a name="line.2808"></a>
-<span class="sourceLineNo">2809</span>   * This method is used for testing.<a name="line.2809"></a>
-<span class="sourceLineNo">2810</span>   *<a name="line.2810"></a>
-<span class="sourceLineNo">2811</span>   * @return true if master is ready to go, false if not.<a name="line.2811"></a>
-<span class="sourceLineNo">2812</span>   */<a name="line.2812"></a>
-<span class="sourceLineNo">2813</span><a name="line.2813"></a>
-<span class="sourceLineNo">2814</span>  @Override<a name="line.2814"></a>
-<span class="sourceLineNo">2815</span>  public boolean isOnline() {<a name="line.2815"></a>
-<span class="sourceLineNo">2816</span>    return serviceStarted;<a name="line.2816"></a>
-<span class="sourceLineNo">2817</span>  }<a name="line.2817"></a>
-<span class="sourceLineNo">2818</span><a name="line.2818"></a>
-<span class="sourceLineNo">2819</span>  /**<a name="line.2819"></a>
-<span class="sourceLineNo">2820</span>   * Report whether this master is in maintenance mode.<a name="line.2820"></a>
-<span class="sourceLineNo">2821</span>   *<a name="line.2821"></a>
-<span class="sourceLineNo">2822</span>   * @return true if master is in maintenanceMode<a name="line.2822"></a>
-<span class="sourceLineNo">2823</span>   */<a name="line.2823"></a>
-<span class="sourceLineNo">2824</span>  @Override<a name="line.2824"></a>
-<span class="sourceLineNo">2825</span>  public boolean isInMaintenanceMode() {<a name="line.2825"></a>
-<span class="sourceLineNo">2826</span>    return maintenanceMode;<a name="line.2826"></a>
-<span class="sourceLineNo">2827</span>  }<a name="line.2827"></a>
-<span class="sourceLineNo">2828</span><a name="line.2828"></a>
-<span class="sourceLineNo">2829</span>  @InterfaceAudience.Private<a name="line.2829"></a>
-<span class="sourceLineNo">2830</span>  public void setInitialized(boolean isInitialized) {<a name="line.2830"></a>
-<span class="sourceLineNo">2831</span>    procedureExecutor.getEnvironment().setEventReady(initialized, isInitialized);<a name="line.2831"></a>
-<span class="sourceLineNo">2832</span>  }<a name="line.2832"></a>
-<span class="sourceLineNo">2833</span><a name="line.2833"></a>
-<span class="sourceLineNo">2834</span>  @Override<a name="line.2834"></a>
-<span class="sourceLineNo">2835</span>  public ProcedureEvent&lt;?&gt; getInitializedEvent() {<a name="line.2835"></a>
-<span class="sourceLineNo">2836</span>    return initialized;<a name="line.2836"></a>
-<span class="sourceLineNo">2837</span>  }<a name="line.2837"></a>
-<span class="sourceLineNo">2838</span><a name="line.2838"></a>
-<span class="sourceLineNo">2839</span>  /**<a name="line.2839"></a>
-<span class="sourceLineNo">2840</span>   * Compute the average load across all region servers.<a name="line.2840"></a>
-<span class="sourceLineNo">2841</span>   * Currently, this uses a very naive computation - just uses the number of<a name="line.2841"></a>
-<span class="sourceLineNo">2842</span>   * regions being served, ignoring stats about number of requests.<a name="line.2842"></a>
-<span class="sourceLineNo">2843</span>   * @return the average load<a name="line.2843"></a>
-<span class="sourceLineNo">2844</span>   */<a name="line.2844"></a>
-<span class="sourceLineNo">2845</span>  public double getAverageLoad() {<a name="line.2845"></a>
-<span class="sourceLineNo">2846</span>    if (this.assignmentManager == null) {<a name="line.2846"></a>
-<span class="sourceLineNo">2847</span>      return 0;<a name="line.2847"></a>
-<span class="sourceLineNo">2848</span>    }<a name="line.2848"></a>
-<span class="sourceLineNo">2849</span><a name="line.2849"></a>
-<span class="sourceLineNo">2850</span>    RegionStates regionStates = this.assignmentManager.getRegionStates();<a name="line.2850"></a>
-<span class="sourceLineNo">2851</span>    if (regionStates == null) {<a name="line.2851"></a>
-<span class="sourceLineNo">2852</span>      return 0;<a name="line.2852"></a>
-<span class="sourceLineNo">2853</span>    }<a name="line.2853"></a>
-<span class="sourceLineNo">2854</span>    return regionStates.getAverageLoad();<a name="line.2854"></a>
-<span class="sourceLineNo">2855</span>  }<a name="line.2855"></a>
-<span class="sourceLineNo">2856</span><a name="line.2856"></a>
-<span class="sourceLineNo">2857</span>  @Override<a name="line.2857"></a>
-<span class="sourceLineNo">2858</span>  public boolean registerService(Service instance) {<a name="line.2858"></a>
-<span class="sourceLineNo">2859</span>    /*<a name="line.2859"></a>
-<span class="sourceLineNo">2860</span>     * No stacking of instances is allowed for a single service name<a name="line.2860"></a>
-<span class="sourceLineNo">2861</span>     */<a name="line.2861"></a>
-<span class="sourceLineNo">2862</span>    Descriptors.ServiceDescriptor serviceDesc = instance.getDescriptorForType();<a name="line.2862"></a>
-<span class="sourceLineNo">2863</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.2863"></a>
-<span class="sourceLineNo">2864</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.2864"></a>
-<span class="sourceLineNo">2865</span>      LOG.error("Coprocessor service "+serviceName+<a name="line.2865"></a>
-<span class="sourceLineNo">2866</span>          " already registered, rejecting request from "+instance<a name="line.2866"></a>
-<span class="sourceLineNo">2867</span>      );<a name="line.2867"></a>
-<span class="sourceLineNo">2868</span>      return false;<a name="line.2868"></a>
-<span class="sourceLineNo">2869</span>    }<a name="line.2869"></a>
-<span class="sourceLineNo">2870</span><a name="line.2870"></a>
-<span class="sourceLineNo">2871</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.2871"></a>
-<span class="sourceLineNo">2872</span>    if (LOG.isDebugEnabled()) {<a name="line.2872"></a>
-<span class="sourceLineNo">2873</span>      LOG.debug("Registered master coprocessor service: service="+serviceName);<a name="line.2873"></a>
-<span class="sourceLineNo">2874</span>    }<a name="line.2874"></a>
-<span class="sourceLineNo">2875</span>    return true;<a name="line.2875"></a>
-<span class="sourceLineNo">2876</span>  }<a name="line.2876"></a>
-<span class="sourceLineNo">2877</span><a name="line.2877"></a>
-<span class="sourceLineNo">2878</span>  /**<a name="line.2878"></a>
-<span class="sourceLineNo">2879</span>   * Utility for constructing an instance of the passed HMaster class.<a name="line.2879"></a>
-<span class="sourceLineNo">2880</span>   * @param masterClass<a name="line.2880"></a>
-<span class="sourceLineNo">2881</span>   * @return HMaster instance.<a name="line.2881"></a>
-<span class="sourceLineNo">2882</span>   */<a name="line.2882"></a>
-<span class="sourceLineNo">2883</span>  public static HMaster constructMaster(Class&lt;? extends HMaster&gt; masterClass,<a name="line.2883"></a>
-<span class="sourceLineNo">2884</span>      final Configuration conf)  {<a name="line.2884"></a>
-<span class="sourceLineNo">2885</span>    try {<a name="line.2885"></a>
-<span class="sourceLineNo">2886</span>      Constructor&lt;? extends HMaster&gt; c = masterClass.getConstructor(Configuration.class);<a name="line.2886"></a>
-<span class="sourceLineNo">2887</span>      return c.newInstance(conf);<a name="line.2887"></a>
-<span class="sourceLineNo">2888</span>    } catch(Exception e) {<a name="line.2888"></a>
-<span class="sourceLineNo">2889</span>      Throwable error = e;<a name="line.2889"></a>
-<span class="sourceLineNo">2890</span>      if (e instanceof InvocationTargetException &amp;&amp;<a name="line.2890"></a>
-<span class="sourceLineNo">2891</span>          ((InvocationTargetException)e).getTargetException() != null) {<a name="line.2891"></a>
-<span class="sourceLineNo">2892</span>        error = ((InvocationTargetException)e).getTargetException();<a name="line.2892"></a>
-<span class="sourceLineNo">2893</span>      }<a name="line.2893"></a>
-<span class="sourceLineNo">2894</span>      throw new RuntimeException("Failed construction of Master: " + masterClass.toString() + ". "<a name="line.2894"></a>
-<span class="sourceLineNo">2895</span>        , error);<a name="line.2895"></a>
-<span class="sourceLineNo">2896</span>    }<a name="line.2896"></a>
-<span class="sourceLineNo">2897</span>  }<a name="line.2897"></a>
-<span class="sourceLineNo">2898</span><a name="line.2898"></a>
-<span class="sourceLineNo">2899</span>  /**<a name="line.2899"></a>
-<span class="sourceLineNo">2900</span>   * @see org.apache.hadoop.hbase.master.HMasterCommandLine<a name="line.2900"></a>
-<span class="sourceLineNo">2901</span>   */<a name="line.2901"></a>
-<span class="sourceLineNo">2902</span>  public static void main(String [] args) {<a name="line.2902"></a>
-<span class="sourceLineNo">2903</span>    LOG.info("STARTING service " + HMaster.class.getSimpleName());<a name="line.2903"></a>
-<span class="sourceLineNo">2904</span>    VersionInfo.logVersion();<a name="line.2904"></a>
-<span class="sourceLineNo">2905</span>    new HMasterCommandLine(HMaster.class).doMain(args);<a name="line.2905"></a>
-<span class="sourceLineNo">2906</span>  }<a name="line.2906"></a>
-<span class="sourceLineNo">2907</span><a name="line.2907"></a>
-<span class="sourceLineNo">2908</span>  public HFileCleaner getHFileCleaner() {<a name="line.2908"></a>
-<span class="sourceLineNo">2909</span>    return this.hfileCleaner;<a name="line.2909"></a>
-<span class="sourceLineNo">2910</span>  }<a name="line.2910"></a>
-<span class="sourceLineNo">2911</span><a name="line.2911"></a>
-<span class="sourceLineNo">2912</span>  public LogCleaner getLogCleaner() {<a name="line.2912"></a>
-<span class="sourceLineNo">2913</span>    return this.logCleaner;<a name="line.2913"></a>
-<span class="sourceLineNo">2914</span>  }<a name="line.2914"></a>
-<span class="sourceLineNo">2915</span><a name="line.2915"></a>
-<span class="sourceLineNo">2916</span>  /**<a name="line.2916"></a>
-<span class="sourceLineNo">2917</span>   * @return the underlying snapshot manager<a name="line.2917"></a>
-<span class="sourceLineNo">2918</span>   */<a name="line.2918"></a>
-<span class="sourceLineNo">2919</span>  @Override<a name="line.2919"></a>
-<span class="sourceLineNo">2920</span>  public SnapshotManager getSnapshotManager() {<a name="line.2920"></a>
-<span class="sourceLineNo">2921</span>    return this.snapshotManager;<a name="line.2921"></a>
-<span class="sourceLineNo">2922</span>  }<a name="line.2922"></a>
-<span class="sourceLineNo">2923</span><a name="line.2923"></a>
-<span class="sourceLineNo">2924</span>  /**<a name="line.2924"></a>
-<span class="sourceLineNo">2925</span>   * @return the underlying MasterProcedureManagerHost<a name="line.2925"></a>
-<span class="sourceLineNo">2926</span>   */<a name="line.2926"></a>
-<span class="sourceLineNo">2927</span>  @Override<a name="line.2927"></a>
-<span class="sourceLineNo">2928</span>  public MasterProcedureManagerHost getMasterProcedureManagerHost() {<a name="line.2928"></a>
-<span class="sourceLineNo">2929</span>    return mpmHost;<a name="line.2929"></a>
-<span class="sourceLineNo">2930</span>  }<a name="line.2930"></a>
-<span class="sourceLineNo">2931</span><a name="line.2931"></a>
-<span class="sourceLineNo">2932</span>  @Override<a name="line.2932"></a>
-<span class="sourceLineNo">2933</span>  public ClusterSchema getClusterSchema() {<a name="line.2933"></a>
-<span class="sourceLineNo">2934</span>    return this.clusterSchemaService;<a name="line.2934"></a>
-<span class="sourceLineNo">2935</span>  }<a name="line.2935"></a>
-<span class="sourceLineNo">2936</span><a name="line.2936"></a>
-<span class="sourceLineNo">2937</span>  /**<a name="line.2937"></a>
-<span class="sourceLineNo">2938</span>   * Create a new Namespace.<a name="line.2938"></a>
-<span class="sourceLineNo">2939</span>   * @param namespaceDescriptor descriptor for new Namespace<a name="line.2939"></a>
-<span class="sourceLineNo">2940</span>   * @param nonceGroup Identifier for the source of the request, a client or process.<a name="line.2940"></a>
-<span class="sourceLineNo">2941</span>   * @param nonce A unique identifier for this operation from the client or process identified by<a name="line.2941"></a>
-<span class="sourceLineNo">2942</span>   * &lt;code&gt;nonceGroup&lt;/code&gt; (the source must ensure each operation gets a unique id).<a name="line.2942"></a>
-<span class="sourceLineNo">2943</span>   * @return procedure id<a name="line.2943"></a>
-<span class="sourceLineNo">2944</span>   */<a name="line.2944"></a>
-<span class="sourceLineNo">2945</span>  long createNamespace(final NamespaceDescriptor namespaceDescriptor, final long nonceGroup,<a name="line.2945"></a>
-<span class="sourceLineNo">2946</span>      final long nonce) throws IOException {<a name="line.2946"></a>
-<span class="sourceLineNo">2947</span>    checkInitialized();<a name="line.2947"></a>
-<span class="sourceLineNo">2948</span><a name="line.2948"></a>
-<span class="sourceLineNo">2949</span>    TableName.isLegalNamespaceName(Bytes.toBytes(namespaceDescriptor.getName()));<a name="line.2949"></a>
-<span class="sourceLineNo">2950</span><a name="line.2950"></a>
-<span class="sourceLineNo">2951</span>    return MasterProcedureUtil.submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this,<a name="line.2951"></a>
-<span class="sourceLineNo">2952</span>          nonceGroup, nonce) {<a name="line.2952"></a>
-<span class="sourceLineNo">2953</span>      @Override<a name="line.2953"></a>
-<span class="sourceLineNo">2954</span>      protected void run() throws IOException {<a name="line.2954"></a>
-<span class="sourceLineNo">2955</span>        getMaster().getMasterCoprocessorHost().preCreateNamespace(namespaceDescriptor);<a name="line.2955"></a>
-<span class="sourceLineNo">2956</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2956"></a>
-<span class="sourceLineNo">2957</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2957"></a>
-<span class="sourceLineNo">2958</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2958"></a>
-<span class="sourceLineNo">2959</span>        LOG.info(getClientIdAuditPrefix() + " creating " + namespaceDescriptor);<a name="line.2959"></a>
-<span class="sourceLineNo">2960</span>        // Execute the operation synchronously - wait for the operation to complete before<a name="line.2960"></a>
-<span class="sourceLineNo">2961</span>        // continuing.<a name="line.2961"></a>
-<span class="sourceLineNo">2962</span>        setProcId(getClusterSchema().createNamespace(namespaceDescriptor, getNonceKey(), latch));<a name="line.2962"></a>
-<span class="sourceLineNo">2963</span>        latch.await();<a name="line.2963"></a>
-<span class="sourceLineNo">2964</span>        getMaster().getMasterCoprocessorHost().postCreateNamespace(namespaceDescriptor);<a name="line.2964"></a>
-<span class="sourceLineNo">2965</span>      }<a name="line.2965"></a>
-<span class="sourceLineNo">2966</span><a name="line.2966"></a>
-<span class="sourceLineNo">2967</span>      @Override<a name="line.2967"></a>
-<span class="sourceLineNo">2968</span>      protected String getDescription() {<a name="line.2968"></a>
-<span class="sourceLineNo">2969</span>        return "CreateNamespaceProcedure";<a name="line.2969"></a>
-<span class="sourceLineNo">2970</span>      }<a name="line.2970"></a>
-<span class="sourceLineNo">2971</span>    });<a name="line.2971"></a>
-<span class="sourceLineNo">2972</span>  }<a name="line.2972"></a>
-<span class="sourceLineNo">2973</span><a name="line.2973"></a>
-<span class="sourceLineNo">2974</span>  /**<a name="line.2974"></a>
-<span class="sourceLineNo">2975</span>   * Modify an existing Namespace.<a name="line.2975"></a>
-<span class="sourceLineNo">2976</span>   * @param nonceGroup Identifier for the source of the request, a client or process.<a name="line.2976"></a>
-<span class="sourceLineNo">2977</span>   * @param nonce A unique identifier for this operation from the client or process identified by<a name="line.2977"></a>
-<span class="sourceLineNo">2978</span>   * &lt;code&gt;nonceGroup&lt;/code&gt; (the source must ensure each operation gets a unique id).<a name="line.2978"></a>
-<span class="sourceLineNo">2979</span>   * @return procedure id<a name="line.2979"></a>
-<span class="sourceLineNo">2980</span>   */<a name="line.2980"></a>
-<span class="sourceLineNo">2981</span>  long modifyNamespace(final NamespaceDescriptor newNsDescriptor, final long nonceGroup,<a name="line.2981"></a>
-<span class="sourceLineNo">2982</span>      final long nonce) throws IOException {<a name="line.2982"></a>
-<span class="sourceLineNo">2983</span>    checkInitialized();<a name="line.2983"></a>
-<span class="sourceLineNo">2984</span><a name="line.2984"></a>
-<span class="sourceLineNo">2985</span>    TableName.isLegalNamespaceName(Bytes.toBytes(newNsDescriptor.getName()));<a name="line.2985"></a>
-<span class="sourceLineNo">2986</span><a name="line.2986"></a>
-<span class="sourceLineNo">2987</span>    return MasterProcedureUtil.submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this,<a name="line.2987"></a>
-<span class="sourceLineNo">2988</span>          nonceGroup, nonce) {<a name="line.2988"></a>
-<span class="sourceLineNo">2989</span>      @Override<a name="line.2989"></a>
-<span class="sourceLineNo">2990</span>      protected void run() throws IOException {<a name="line.2990"></a>
-<span class="sourceLineNo">2991</span>        NamespaceDescriptor oldNsDescriptor = getNamespace(newNsDescriptor.getName());<a name="line.2991"></a>
-<span class="sourceLineNo">2992</span>        getMaster().getMasterCoprocessorHost().preModifyNamespace(oldNsDescriptor, newNsDescriptor);<a name="line.2992"></a>
-<span class="sourceLineNo">2993</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2993"></a>
-<span class="sourceLineNo">2994</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2994"></a>
-<span class="sourceLineNo">2995</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2995"></a>
-<span class="sourceLineNo">2996</span>        LOG.info(getClientIdAuditPrefix() + " modify " + newNsDescriptor);<a name="line.2996"></a>
-<span class="sourceLineNo">2997</span>        // Execute the operation synchronously - wait for the operation to complete before<a name="line.2997"></a>
-<span class="sourceLineNo">2998</span>        // continuing.<a name="line.2998"></a>
-<span class="sourceLineNo">2999</span>        setProcId(getClusterSchema().modifyNamespace(newNsDescriptor, getNonceKey(), latch));<a name="line.2999"></a>
-<span class="sourceLineNo">3000</span>        latch.await();<a name="line.3000"></a>
-<span class="sourceLineNo">3001</span>        getMaster().getMasterCoprocessorHost().postModifyNamespace(oldNsDescriptor,<a name="line.3001"></a>
-<span class="sourceLineNo">3002</span>          newNsDescriptor);<a name="line.3002"></a>
-<span class="sourceLineNo">3003</span>      }<a name="line.3003"></a>
-<span class="sourceLineNo">3004</span><a name="line.3004"></a>
-<span class="sourceLineNo">3005</span>      @Override<a name="line.3005"></a>
-<span class="sourceLineNo">3006</span>      protected String getDescription() {<a name="line.3006"></a>
-<span class="sourceLineNo">3007</span>        return "ModifyNamespaceProcedure";<a name="line.3007"></a>
-<span class="sourceLineNo">3008</span>      }<a name="line.3008"></a>
-<span class="sourceLineNo">3009</span>    });<a name="line.3009"></a>
-<span class="sourceLineNo">3010</span>  }<a name="line.3010"></a>
-<span class="sourceLineNo">3011</span><a name="line.3011"></a>
-<span class="sourceLineNo">3012</span>  /**<a name="line.3012"></a>
-<span class="sourceLineNo">3013</span>   * Delete an existing Namespace. Only empty Namespaces (no tables) can be removed.<a name="line.3013"></a>
-<span class="sourceLineNo">3014</span>   * @param nonceGroup Identifier for the source of the request, a client or process.<a name="line.3014"></a>
-<span class="sourceLineNo">3015</span>   * @param nonce A unique identifier for this operation from the client or process identified by<a name="line.3015"></a>
-<span class="sourceLineNo">3016</span>   * &lt;code&gt;nonceGroup&lt;/code&gt; (the source must ensure each operation gets a unique id).<a name="line.3016"></a>
-<span class="sourceLineNo">3017</span>   * @return procedure id<a name="line.3017"></a>
-<span class="sourceLineNo">3018</span>   */<a name="line.3018"></a>
-<span class="sourceLineNo">3019</span>  long deleteNamespace(final String name, final long nonceGroup, final long nonce)<a name="line.3019"></a>
-<span class="sourceLineNo">3020</span>      throws IOException {<a name="line.3020"></a>
-<span class="sourceLineNo">3021</span>    checkInitialized();<a name="line.3021"></a>
-<span class="sourceLineNo">3022</span><a name="line.3022"></a>
-<span class="sourceLineNo">3023</span>    return MasterProcedureUtil.submitProcedure(new MasterProcedureUtil.NonceProcedureRunnable(this,<a name="line.3023"></a>
-<span class="sourceLineNo">3024</span>          nonceGroup, nonce) {<a name="line.3024"></a>
-<span class="sourceLineNo">3025</span>      @Override<a name="line.3025"></a>
-<span class="sourceLineNo">3026</span>      protected void run() throws IOException {<a name="line.3026"></a>
-<span class="sourceLineNo">3027</span>        getMaster().getMasterCoprocessorHost().preDeleteNamespace(name);<a name="line.3027"></a>
-<span class="sourceLineNo">3028</span>        LOG.info(getClientIdAuditPrefix() + " delete " + name);<a name="line.3028"></a>
-<span class="sourceLineNo">3029</span>        // Execute the operation synchronously - wait for the operation to complete before<a name="line.3029"></a>
-<span class="sourceLineNo">3030</span>        // continuing.<a name="line.3030"></a>
-<span class="sourceLineNo">3031</span>        //<a name="line.3031"></a>
-<span class="sourceLineNo">3032</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.3032"></a>
-<span class="sourceLineNo">3033</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.3033"></a>
-<span class="sourceLineNo">3034</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.3034"></a>
-<span class="sourceLineNo">3035</span>        setProcId(submitProcedure(<a name="line.3035"></a>
-<span class="sourceLineNo">3036</span>              new DeleteNamespaceProcedure(procedureExecutor.getEnvironment(), name, latch)));<a name="line.3036"></a>
-<span class="sourceLineNo">3037</span>        latch.await();<a name="line.3037"></a>
-<span class="sourceLineNo">3038</span>        // Will not be invoked in the face of Exception thrown by the Procedure's execution<a name="line.3038"></a>
-<span class="sourceLineNo">3039</span>        getMaster().getMasterCoprocessorHost().postDeleteNamespace(name);<a name="line.3039"></a>
-<span class="sourceLineNo">3040</span>      }<a name="line.3040"></a>
-<span class="sourceLineNo">3041</span><a name="line.3041"></a>
-<span class="sourceLineNo">3042</span>      @Override<a name="line.3042"></a>
-<span class="sourceLineNo">3043</span>      protected String getDescription() {<a name="line.3043"></a>
-<span class="sourceLineNo">3044</span>        return "DeleteNamespaceProcedure";<a name="line.3044"></a>
-<span class="sourceLineNo">3045</span>      }<a name="line.3045"></a>
-<span class="sourceLineNo">3046</span>    });<a name="line.3046"></a>
-<span class="sourceLineNo">3047</span>  }<a name="line.3047"></a>
-<span class="sourceLineNo">3048</span><a name="line.3048"></a>
-<span class="sourceLineNo">3049</span>  /**<a name="line.3049"></a>
-<span class="sourceLineNo">3050</span>   * Get a Namespace<a name="line.3050"></a>
-<span class="sourceLineNo">3051</span>   * @param name Name of the Namespace<a name="line.3051"></a>
-<span class="sourceLineNo">3052</span>   * @return Namespace descriptor for &lt;code&gt;name&lt;/code&gt;<a name="line.3052"></a>
-<span class="sourceLineNo">3053</span>   */<a name="line.3053"></a>
-<span class="sourceLineNo">3054</span>  NamespaceDescriptor getNamespace(String name) throws IOException {<a name="line.3054"></a>
-<span class="sourceLineNo">3055</span>    checkInitialized();<a name="line.3055"></a>
-<span class="sourceLineNo">3056</span>    if (this.cpHost != null) this.cpHost.preGetNamespaceDescriptor(name);<a name="line.3056"></a>
-<span class="sourceLineNo">3057</span>    NamespaceDescriptor nsd = this.clusterSchemaService.getNamespace(name);<a name="line.3057"></a>
-<span class="sourceLineNo">3058</span>    if (this.cpHost != null) this.cpHost.postGetNamespaceDescriptor(nsd);<a name="line.3058"></a>
-<span class="sourceLineNo">3059</span>    return nsd;<a name="line.3059"></a>
-<span class="sourceLineNo">3060</span>  }<a name="line.3060"></a>
-<span class="sourceLineNo">3061</span><a name="line.3061"></a>
-<span class="sourceLineNo">3062</span>  /**<a name="line.3062"></a>
-<span class="sourceLineNo">3063</span>   * Get all Namespaces<a name="line.3063"></a>
-<span class="sourceLineNo">3064</span>   * @return All Namespace descriptors<a name="line.3064"></a>
-<span class="sourceLineNo">3065</span>   */<a name="line.3065"></a>
-<span class="sourceLineNo">3066</span>  List&lt;NamespaceDescriptor&gt; getNamespaces() throws IOException {<a name="line.3066"></a>
-<span class="sourceLineNo">3067</span>    checkInitialized();<a name="line.3067"></a>
-<span class="sourceLineNo">3068</span>    final List&lt;NamespaceDescriptor&gt; nsds = new ArrayList&lt;&gt;();<a name="line.3068"></a>
-<span class="sourceLineNo">3069</span>    if (cpHost != null) {<a name="line.3069"></a>
-<span class="sourceLineNo">3070</span>      cpHost.preListNamespaceDescriptors(nsds);<a name="line.3070"></a>
-<span class="sourceLineNo">3071</span>    }<a name="line.3071"></a>
-<span class="sourceLineNo">3072</span>    nsds.addAll(this.clusterSchemaService.getNamespaces());<a name="line.3072"></a>
-<span class="sourceLineNo">3073</span>    if (this.cpHost != null) {<a name="line.3073"></a>
-<span class="sourceLineNo">3074</span>      this.cpHost.postListNamespaceDescriptors(nsds);<a name="line.3074"></a>
-<span class="sourceLineNo">3075</span>    }<a name="line.3075"></a>
-<span class="sourceLineNo">3076</span>    return nsds;<a name="line.3076"></a>
-<span class="sourceLineNo">3077</span>  }<a name="line.3077"></a>
-<span class="sourceLineNo">3078</span><a name="line.3078"></a>
-<span class="sourceLineNo">3079</span>  /**<a name="line.3079"></a>
-<span class="sourceLineNo">3080</span>   * List namespace names<a name="line.3080"></a>
-<span class="sourceLineNo">3081</span>   * @return All namespace names<a name="line.3081"></a>
-<span class="sourceLineNo">3082</span>   */<a name="line.3082"></a>
-<span class="sourceLineNo">3083</span>  public List&lt;String&gt; listNamespaces() throws IOException {<a name="line.3083"></a>
-<span class="sourceLineNo">3084</span>    checkInitialized();<a name="line.3084"></a>
-<span class="sourceLineNo">3085</span>    List&lt;String&gt; namespaces = new ArrayList&lt;&gt;();<a name="line.3085"></a>
-<span class="sourceLineNo">3086</span>    if (cpHost != null) {<a name="line.3086"></a>
-<span class="sourceLineNo">3087</span>      cpHost.preListNamespaces(namespaces);<a name="line.3087"></a>
-<span class="sourceLineNo">3088</span>    }<a name="line.3088"></a>
-<span class="sourceLineNo">3089</span>    for (NamespaceDescriptor namespace : clusterSchemaService.getNamespaces()) {<a name="line.3089"></a>
-<span class="sourceLineNo">3090</span>      namespaces.add(namespace.getName());<a name="line.3090"></a>
-<span class="sourceLineNo">3091</span>    }<a name="line.3091"></a>
-<span class="sourceLineNo">3092</span>    if (cpHost != null) {<a name="line.3092"></a>
-<span class="sourceLineNo">3093</span>      cpHost.postListNamespaces(namespaces);<a name="line.3093"></a>
-<span class="sourceLineNo">3094</span>    }<a name="line.3094"></a>
-<span class="sourceLineNo">3095</span>    return namespaces;<a name="line.3095"></a>
-<span class="sourceLineNo">3096</span>  }<a name="line.3096"></a>
-<span class="sourceLineNo">3097</span><a name="line.3097"></a>
-<span class="sourceLineNo">3098</span>  @Override<a name="line.3098"></a>
-<span class="sourceLineNo">3099</span>  public List&lt;TableName&gt; listTableNamesByNamespace(String name) throws IOException {<a name="line.3099"></a>
-<span class="sourceLineNo">3100</span>    checkInitialized();<a name="line.3100"></a>
-<span class="sourceLineNo">3101</span>    return listTableNames(name, null, true);<a name="line.3101"></a>
-<span class="sourceLineNo">3102</span>  }<a name="line.3102"></a>
-<span class="sourceLineNo">3103</span><a name="line.3103"></a>
-<span class="sourceLineNo">3104</span>  @Override<a name="line.3104"></a>
-<span class="sourceLineNo">3105</span>  public List&lt;TableDescriptor&gt; listTableDescriptorsByNamespace(String name) throws IOException {<a name="line.3105"></a>
-<span class="sourceLineNo">3106</span>    checkInitialized();<a name="line.3106"></a>
-<span class="sourceLineNo">3107</span>    return listTableDescriptors(name, null, null, true);<a name="line.3107"></a>
-<span class="sourceLineNo">3108</span>  }<a name="line.3108"></a>
-<span class="sourceLineNo">3109</span><a name="line.3109"></a>
-<span class="sourceLineNo">3110</span>  @Override<a name="line.3110"></a>
-<span class="sourceLineNo">3111</span>  public boolean abortProcedure(final long procId, final boolean mayInterruptIfRunning)<a name="line.3111"></a>
-<span class="sourceLineNo">3112</span>      throws IOException {<a name="line.3112"></a>
-<span class="sourceLineNo">3113</span>    if (cpHost != null) {<a name="line.3113"></a>
-<span class="sourceLineNo">3114</span>      cpHost.preAbortProcedure(this.procedureExecutor, procId);<a name="line.3114"></a>
-<span class="sourceLineNo">3115</span>    }<a name="line.3115"></a>
-<span class="sourceLineNo">3116</span><a name="line.3116"></a>
-<span class="sourceLineNo">3117</span>    final boolean result = this.procedureExecutor.abort(procId, mayInterruptIfRunning);<a name="line.3117"></a>
-<span class="sourceLineNo">3118</span><a name="line.3118"></a>
-<span class="sourceLineNo">3119</span>    if (cpHost != null) {<a name="line.3119"></a>
-<span class="sourceLineNo">3120</span>      cpHost.postAbortProcedure();<a name="line.3120"></a>
-<span class="sourceLineNo">3121</span>    }<a name="line.3121"></a>
-<span class="sourceLineNo">3122</span><a name="line.3122"></a>
-<span class="sourceLineNo">3123</span>    return result;<a name="line.3123"></a>
-<span class="sourceLineNo">3124</span>  }<a name="line.3124"></a>
-<span class="sourceLineNo">3125</span><a name="line.3125"></a>
-<span class="sourceLineNo">3126</span>  @Override<a name="line.3126"></a>
-<span class="sourceLineNo">3127</span>  public List&lt;Procedure&lt;?&gt;&gt; getProcedures() throws IOException {<a name="line.3127"></a>
-<span class="sourceLineNo">3128</span>    if (cpHost != null) {<a name="line.3128"></a>
-<span class="sourceLineNo">3129</span>      cpHost.preGetProcedures();<a name="line.3129"></a>
-<span class="sourceLineNo">3130</span>    }<a name="line.3130"></a>
-<span class="sourceLineNo">3131</span><a name="line.3131"></a>
-<span class="sourceLineNo">3132</span>    @SuppressWarnings({ "unchecked", "rawtypes" })<a name="line.3132"></a>
-<span class="sourceLineNo">3133</span>    List&lt;Procedure&lt;?&gt;&gt; procList = (List) this.procedureExecutor.getProcedures();<a name="line.3133"></a>
-<span class="sourceLineNo">3134</span><a name="line.3134"></a>
-<span class="sourceLineNo">3135</span>    if (cpHost != null) {<a name="line.3135"></a>
-<span class="sourceLineNo">3136</span>      cpHost.postGetProcedures(procList);<a name="line.3136"></a>
-<span class="sourceLineNo">3137</span>    }<a name="line.3137"></a>
-<span class="sourceLineNo">3138</span><a name="line.3138"></a>
... 23111 lines suppressed ...